web前端开发学习之三

制作一个导航栏

 新建一个div,添加css代码,使得产生的样式为如下

 我们想将块放在中间,居中,那么剧需要用到margin:0 auto,但是margin:0 auto与margin-top:30px的位置先后是有区别的如

		<style type="text/css">
			#nav{
				width: 960px;
				height: 35px;
				background-color: #ccc;
				margin-top: 30px;/*与上面的距离*/
                margin: 0 auto;/*设置居中*/
			}
		</style>

此时的结果

看一下,将margin:0 auto放在margin-top:30px之前

		<style type="text/css">
			#nav{
				width: 960px;
				height: 35px;
				background-color: #ccc;
				margin: 0 auto;/*设置居中,他必须放在margin-top之前,否则他会覆盖margin-top的内容,也就是margin-top不起作用*/
				margin-top: 30px;/*与上面的距离*/
			}
		</style>

 添加6个li标签,输入ul>(li>a)*6再按一下tab键就可以生成一个ul标签,这个ul标签里面含有6个li标签,6个li标签里面又分别单独对应一个a标签,a标签是一个可以跳转的,href(HTML reference)代表是一个HTML 的可以跳转到其他地方的链接如下:

			<ul>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
				<li><a href=""></a></li>
			</ul>

设置一下属性

		<style type="text/css">
			body,div{/*为了避免兼容性的问题,设置body,div*/
				margin: 0;
				padding: 0;
			}
			#nav{
				width: 960px;
				height: 35px;
				background-color: #ccc;
				margin: 0 auto;/*设置居中,他必须放在margin-top之前,否则他会覆盖margin-top的内容,也就是margin-top不起作用*/
				margin-top: 30px;/*与上面的距离*/
			}
			#nav ul{/*nav 和 ul 都是块状元素,前面了解到块状元素可以容纳其他块状元素或者内联元素*/
				width: 960px;/*设置ul的大小和nav这个块的大小相同*/
				height: 35px;
			}
		</style>
	</head>
	<body>
		<div id="nav">
			<ul>
				<li><a href="#">阿里巴巴</a></li><!-- 加#代表不跳转到其他地方-->
				<li><a href="#">腾讯</a></li>
				<li><a href="#">百度</a></li>
				<li><a href="#">小米</a></li>
				<li><a href="#">今日头条</a></li>
				<li><a href="#">微软</a></li>
			</ul>
			
		</div>

我也验证了火狐浏览器,发现火狐浏览器和google的结果是一样的,其中nav块的大小并没有发生变化 ,但是可以发现IE6 自己把容器撑大了,所有的li小块都包含在这个灰色的nav容器当中,添加一个float:left就会横向显示,但是即使设置了float参数,IE的框图还是变大了

 现在添加了ul和li标签,那么缺省值里就得对ul和li进行补充

			body,div,ul,li{/*为了避免兼容性的问题,设置body,div*/
				margin: 0;
				padding: 0;
			}

那么如何去掉google浏览器中的小圆点呢?则设置list-style属性为空 ,即  list-style:none,看一下此时的google浏览器中状态

 由于没有设置了高度,所以只有宽度

加上高度,和nav的高度一致时

 设置水平居中text-align: center;/*设置字体水平居中*/,但是并没有垂直居中

 设置垂直居中:line-height: 35px;/*设置字体垂直居中*/

添加border: 1px solid #000000; 

去掉width属性,可以发现全部靠在了一起

 添加一个padding属性padding: 0 10px;/*padding如果有两个值,则前一个值表示上下,而后一个值表示左右距离,但是我们上下的距离是不需要变动的*/ 

举例子,一个盒子,盒子里面放了易碎物,那么一般都会塞一下海绵或者泡沫,盒子就是一个border,阿里巴巴这些字是放在盒子里面的;而padding就是里面的泡沫,也就是里面的距离,就相当于上面阿里巴巴或者说腾讯等距离他们外边框的距离;而margin就是有两个盒子,而避免这俩个盒子之间发生碰撞、摩擦,进而设置的一定距离,也就是腾讯这个块和阿里巴巴这个块之间的距离,是与外面的元素的距离。

简单地说,border就是一个盒子,padding就是盒子里面的距离,margin就是盒子外面的距离。

此时成功后就可以去掉border了,继续看,设置a标签的属性,设置其font-size为14px,可以发现此时的字体要稍微协调一些

设置一下取消li块的背景颜色,以及设置字体颜色

 使用text-decoration: none;/*取消a标签下的下划线*/

导航栏举一反三 

hover属性,如#nav ul li a:hover/*表示当鼠标移到a标签上去的时候,他会有什么反应*/ 

			#nav ul li a:hover{/*表示当鼠标移到a标签上去的时候,他会有什么反应*/
				background-color: #000000;
				color: #FFF;
			}

 但是发现当鼠标移上去后其结果中只有a标签,也就是字上变黑了,但是效果并不美好,那么我们试试将a标签的高度设置一下

			#nav ul li a{
				font-size: 14px;
				color: #8790A1;
				text-decoration: none;/*取消a标签下的下划线*/
				height: 35px;
			}

但是,显而易见,结果并没有发生变化,为什么呢,因为我们的a标签是一个内联元素,我们了解到内联元素是无法设置大小的,所以即使设置了大小也没有用,那么怎么做,像上面一样将内联元素的显示改为块状元素 ,此时google的所显示的高度已经没有问了

我们再来看看IE6浏览器 ,如下所示变成了竖排,IE实实在在变成了块状,遵循块状不能并排在同一行

 那么怎么做呢,学习上面的经验,添加一个float:left,再看看此时的结果中IE6变正常了

但是可以看见,此时无论是IE还是google,出来的结果中宽度还是有问题的,宽度总是比块的大小窄一截 ,因为我们并没有设置a标签的宽度,那么他自然就比li块的宽度 窄一截,那么设置好padding即可

原因在于li标签的那一栏也设的有10px的宽度

 那么我们可以去掉li里面的padding:0 10px此时结果就没有问题

可以自己进行更改颜色

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body,div,ul,li{/*为了避免兼容性的问题,设置body,div*/
				margin: 0;/*当添加了ul和li属性,则也要在此处加上ul和li*/
				padding: 0;
			}
			#nav{
				width: 960px;
				height: 35px;
				background-color: #E7E7E7;
				margin: 0 auto;/*设置居中,他必须放在margin-top之前,否则他会覆盖margin-top的内容,也就是margin-top不起作用*/
				margin-top: 30px;/*与上面的距离*/
			}
			#nav ul{/*nav 和 ul 都是块状元素,前面了解到块状元素可以容纳其他块状元素或者内联元素*/
				width: 960px;/*设置ul的大小和nav这个块的大小相同*/
				height: 35px;
			}
			#nav ul li{
				float: left;/*使所有li标签的元素都横向显示*/
				list-style: none;/*去掉一般浏览器中li标签的圆点*/
				/*width: 100px;*/
				height: 35px;
				/*background-color: #F00;*//*li块的背景*/
				text-align: center;/*设置字体水平居中*/
				line-height: 35px;/*设置字体垂直居中*/
				/*padding: 0 10px;*//*padding如果有两个值,则前一个值表示上下,而后一个值表示左右距离,但是我们上下的距离是不需要变动的*/
				/*border: 1px solid #000000;*/
			}
			#nav ul li a{
				font-size: 14px;/*字体大小*/
				color: #8790A1;
				text-decoration: none;/*取消a标签下的下划线*/
				height: 35px;
				display: block;/*设置成块状显示,使得其可以设置大小*/
				float: left;/*设置使得其可以并排显示*/
				padding: 0 10px;
			}
			#nav ul li a:hover{/*表示当鼠标移到a标签上去的时候,他会有什么反应*/
				background-color: #85CE02;/*鼠标移上去时的背景颜色为绿色*/
				color: #FFFFFF;/*鼠标移上去的字体颜色*/
			}
		</style>
	</head>
	<body>
		<div id="nav">
			<ul>
				<li><a href="#">阿里巴巴</a></li><!-- 加#代表不跳转到其他地方-->
				<li><a href="#">腾讯</a></li>
				<li><a href="#">百度</a></li>
				<li><a href="#">小米</a></li>
				<li><a href="#">今日头条</a></li>
				<li><a href="#">微软</a></li>
			</ul>
			
		</div>
	</body>
</html>

导航栏的举一反三(二)

(1)下面做一个好看的背景图片,打开电脑自带的画图工具,选择重新调整大小改成:2*36像素

放大,在下方画一个小块

 保存后复制到hbuilder中的img文件夹下

之后就可以添加图片进入li块的背景    background: url('img/n1.png');/*添加图片为背景,图片放置*/ ,并更改鼠标点击后的内容

			#nav ul li{
				float: left;/*使所有li标签的元素都横向显示*/
				list-style: none;/*去掉一般浏览器中li标签的圆点*/
				/*width: 100px;*/
				height: 35px;
				background: url(img/n1.png);/*添加图片为背景,图片放置*/
				/*background-color: #F00;*//*li块的背景*/
				text-align: center;/*设置字体水平居中*/
				line-height: 35px;/*设置字体垂直居中*/
				/*padding: 0 10px;*//*padding如果有两个值,则前一个值表示上下,而后一个值表示左右距离,但是我们上下的距离是不需要变动的*/
				/*border: 1px solid #000000;*/
			}
#nav ul li a:hover{/*表示当鼠标移到a标签上去的时候,他会有什么反应*/
				background-color: #646464;/*鼠标移上去时的背景颜色为绿色*/
				color: #FFFFFF;/*鼠标移上去的字体颜色*/
				font-size: 15px;
			}

查看一下此时的效果

(二)再做一个导航栏,效果图

margin-right: 1px;/*使得li块的右边会有一段距离,产生一个边框,便于观察*/

<!--描述:给hover一个边框-->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			body,div,ul,li{/*为了避免兼容性的问题,设置body,div*/
				margin: 0;/*当添加了ul和li属性,则也要在此处加上ul和li*/
				padding: 0;
			}
			#nav{
				width: 960px;
				height: 35px;
				background-color: #E7E7E7;
				margin: 0 auto;/*设置居中,他必须放在margin-top之前,否则他会覆盖margin-top的内容,也就是margin-top不起作用*/
				margin-top: 30px;/*与上面的距离*/
			}
			#nav ul{/*nav 和 ul 都是块状元素,前面了解到块状元素可以容纳其他块状元素或者内联元素*/
				width: 960px;/*设置ul的大小和nav这个块的大小相同*/
				height: 35px;
			}
			#nav ul li{
				float: left;/*使所有li标签的元素都横向显示*/
				list-style: none;/*去掉一般浏览器中li标签的圆点*/
				/*width: 100px;*/
				height: 35px;
				/*background: url(img/n1.png);*//*添加图片为背景,图片放置*/
				background-color: #646464;/*li块的背景*/
				text-align: center;/*设置字体水平居中*/
				line-height: 35px;/*设置字体垂直居中*/
				/*padding: 0 10px;*//*padding如果有两个值,则前一个值表示上下,而后一个值表示左右距离,但是我们上下的距离是不需要变动的*/
				/*border: 1px solid #000000;*/
				margin-right: 1px;/*使得li块的右边会有一段距离,产生一个边框,便于观察*/
			}
			#nav ul li a{
				font-size: 14px;/*字体大小*/
				color: #FFF;
				text-decoration: none;/*取消a标签下的下划线*/
				height: 35px;
				display: block;/*设置成块状显示,使得其可以设置大小*/
				float: left;/*设置使得其可以并排显示*/
				padding: 0 10px;
			}
			#nav ul li a:hover{/*表示当鼠标移到a标签上去的时候,他会有什么反应*/
				background-color: #E7E7E7;/*鼠标移上去时的背景颜色为绿色*/
				color: #8790A1;/*鼠标移上去的字体颜色*/
				font-size: 15px;
			}
		</style>
	</head>
	<body>
		<div id="nav">
			<ul>
				<li><a href="#">阿里巴巴</a></li><!-- 加#代表不跳转到其他地方-->
				<li><a href="#">腾讯</a></li>
				<li><a href="#">百度</a></li>
				<li><a href="#">小米</a></li>
				<li><a href="#">今日头条</a></li>
				<li><a href="#">微软</a></li>
			</ul>
			
		</div>
	</body>
</html>

 增加一个圆角,在hover中添加一个border-radius的属性,使得鼠标移动到文字时,显示背景可以有圆角

border-radius: 7px;/*使边框有幅度,有圆角*/

同样的只要设置好相应的颜色就可以得到不同的变化 ,如,对于背景图片,可以自己在画图工具中画一个简单的样式

 第二个

第三,改变使得边框有幅度

 对比IE浏览器

对比Firefox

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值