学习笔记-ife2015task0001(一)

学习笔记-ife2015task0001(一)

极慢速学习前端一个月。最近在做百度ife的task0001的7综合练习,记下遇到的问题。

第一个任务是task0001_1。
然后就是任务中要求:不需要写任何JavaScript,只需要关注HTML、CSS。所以都是用css和html实现的。

初始,题目就有一个要求:

页面实际内容宽度为980px,头部背景、大图、底部背景均为100%宽,当浏览器宽度低于980px时,页面宽度不变,允许出现横向滚动条。右上角的Github图标在浏览器低于980px时消失。

然后展示图是这样的
在这里插入图片描述

既然说页面实际内容宽度为980px,那就是起一个头部分组然后里面包含了实际内容和Github的图标。

html代码

贴上总体的html代码

	<body>
		<div class="top">
			<div class="header">
				<header>NgSzeOi</header>
				<div class="h-menu">
					<ul class="menu">
						<li class="menu1">首页</li>
						<li class="menu1">文章</li>
						<li class="menu1">作品</li>
						<li class="menu1">关于</li>
					</ul>
				</div>
			</div>
			<a href="https://github.com/">
				<img src="icon-github.png" alt="进入Github">
			</a>
		</div>
	</body>

CSS代码

头部

.top {
position: absolute;
top: 0;
left: 0;
height: 80px;
background-color: #5C86BF;
}

实际内容

实际内容的要求实际上也是要在在头部中居中

.header {
height: 100%;
position: relative;
float: left;
width: 980px;
left: 50%;
margin-left: -490px;
}

YourLOGO

YourLOGO没有明确的要求,css代码,所以就只是设置与头部底部贴合。

    .header header {
    font-size: 36px;
    color: white;
    position: absolute;
    bottom: 0;
    } 

菜单栏

然后就到了菜单栏

具体要求是:菜单文字为宋体,14px,菜单项之间间隔为28px,距离header下边线间距5px。

菜单文字的设置

.menu {
font-family: SimSun;
font-size: 14px;
color: white;
}
菜单项

菜单项之间间距为28px,这个要求我是设置了每一项的margin-left为28px,即盒模型的左外边距为28px。

其实设置分别盒模型左右外边距为14px也是可以的。

以及菜单项是横向展示的。

    .menu1 {
    display: inline;
    margin-left: 28px;
    }
菜单位置

由图可以知道,菜单项整体是紧贴实际内容的右端,它的底部距离头部的下边线间距是5px。

补充一些我之前还不太理解的概念:

Absolute 定位:绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于。

至于什么是“已定位父元素”?就是如果没有position属性,就不是已定位的祖先元素。

如果没有已定位的祖先元素,那么它的位置相对于最初的包含块,也就是body(或者称为html画布)。实际上,使用了绝对定位的元素以它最近的一个“已经定位”的“祖先元素” 为基准进行偏移。

这里 .h-menu的已定位的祖先元素是 .header(实际内容部分),所以只需要将菜单的右部对齐祖先的右部,菜单底部高于祖先底部的5px

    .h-menu {
    position: absolute;
    right: 0;
    bottom: 5px;
    }

Github LOGO位置

显示要求是:右上角的Github图标在浏览器低于980px时消失。以及Github LOGO距离右边10px。

补充:Media Query(媒介查询)

@media 媒体类型 and (条件1)   
{
<!--css样式-->
}

媒体类型使用screen,这个适用于电脑屏幕、平板电脑、智能手机等。

min-width:最小宽度

Github LOGO的已定位的祖先元素是 .top,所以当浏览器大于等于980px时,logo的底部紧贴top的底部,logo的右端离top的右边10px;低于980px的时候不显示。

@media only screen and (min-width:980px){
    .top a {
        position: absolute;
        bottom: 0;
        right: 10px;
    }
    .top {
	    width: 100%;
    }
}

@media only screen and (max-width:980px){
    .top a {
        display: none;
    }

    .top {
	    min-width: 980px;
	    width: 100%;
    }
}

这里顺带实现了当浏览器宽度低于980px时,页面宽度不变,允许出现横向滚动条
然而,实际上当浏览器大小大于980px时,github LOGO图片会覆盖了菜单项部分内容。也许将min-width和max-width:980px设置大点会更好一些,或者还有其他更好的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值