日期:2013-10-04 浏览次数:21373 次
虽然在我的网站和文章里都有提到CSS制造菜单的方法,但很多初学者还是不太清楚如何实现,以及实现原理,我想专门写一篇详细教程会对大家比较有协助。
我们先来看一个菜单的例子,最终效果是:
然后我们来详细讲解步骤
我们先建立一个无序列表,来建立菜单的结构。代码是:
<ul>效果是:
由于看起来不是很好看,菜单通常都不需求li默认的圆点,我们给UL定义一个款式来消弭这些圆点。
当然,为了更好的控制整个菜单,我们把菜单放在一个div里。页面代码变成:
<div class="test"><ul>CSS定义为:
.test ul{list-style:none;}说明:“.test ul”表示我要定义的款式将作用在test的层里的ul标签上。
如今的效果是没有圆点了:
这里是菜单变成横向的关键,我们给li元素加上一个“float:left;”属性,让每个li浮动在前面一个li的左面。
CSS定义为:
.test li{float:left;}效果是:
看,菜单变横向了。就这么简单!下面需求做的就是优化细节了。
菜单都挤在一同不好看怎样办?我们来调理li的宽度。
在CSS中添加定义width:100px指定一个li的宽度是100px,当然你可以依据你的需求调整数值:
.test li{float:left;width:100px;}效果是:
如果我们同时定义外面div的宽度,li就会依据div的宽度自动换行,例如定义了div宽350px,6个li的总宽度是600px,一行排不下就自动变成两行:
.test{width:350px;}效果是:
接下来,我们通过CSS来设置链接的款式,分别定义:link、:visited、:hover的形状
.test a:link{color:#666;background:#CCC;text-decoration:none;}效果是:
有朋友问,菜单链接的背景色为什么没有填满整个li的宽度?恩,处理的方法很简单,在a的款式定义中添加display:block,使链接以块级元素显示。
同时我们微调了如下细节:
CSS定义象这样:
.test a{display:block;text-align:center;height:30px;}