如何用CSS制作横向菜单? |
ccnu8 发表于 2005/4/11 21:17:27 |
如何用CSS制作横向菜单?
作者:阿捷 2005-4-11 16:54:52
.test2 ul{list-style:none;}
.test3 ul{list-style:none;}
.test4 ul{list-style:none;}
.test5 ul{list-style:none;width:300px;}
.test3 li{float:left;}
.test4 li{float:left;width:100px;}
.test5 li{float:left;width:100px;}
.test6 ul{list-style:none;}
.test6 li{float:left;width:100px;}
.test6 a:link{color:#666;background:#CCC;text-decoration:none;}
.test6 a:visited{color:#666;text-decoration:underline;}
.test6 a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:#F00;}
.test7 ul{list-style:none;}
.test7 li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}
.test7 a{display:block;text-align:center;height:30px;}
.test7 a:link{color:#666;background:#CCC;text-decoration:none;}
.test7 a:visited{color:#666;text-decoration:underline;}
.test7 a:hover{color:#FFF; font-weight:bold;text-decoration:underline;background:#F00;}
.test8 ul{list-style:none;}
.test8 li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}
.test8 a{display:block;text-align:center;height:30px;}
.test8 a:link{color:#666;background:url(images/arrow_off.gif) #CCC no-repeat 5px
12px;text-decoration:none;}
.test8 a:visited{color:#666;text-decoration:underline;}
.test8 a:hover{color:#FFF;
font-weight:bold;text-decoration:none;background:url(images/arrow_on.gif) #F00 no-repeat 5px
12px;}
尽管在我的网站和文章里都有提到CSS制作菜单的方法,但很多初学者还是不太清楚如何实现,以及实现原理,我想专门写一篇详细教程会对大家比较有帮助。
我们先来看一个菜单的例子,最终效果是:
首页
产品介绍
服务介绍
技术支持
立刻购买
联系我们
然后我们来详细讲解步骤
第一步:建立一个无序列表
我们先建立一个无序列表,来建立菜单的结构。代码是:<ul><li><a href="1">首页</a></li><li><a href="2">产品介绍</a></li><li><a href="3">服务介绍</a></li><li><a href="4">技术支持</a></li><li><a href="5">立刻购买</a></li><li><a href="6">联系我们</a></li></ul>
效果是:
首页
产品介绍
服务介绍
技术支持
立刻购买
联系我们
第二步:隐藏li的默认样式
因为看起来不是很好看,菜单通常都不需要li默认的圆点,我们给UL定义一个样式来消除这些圆点。
当然,为了更好的控制整个菜单,我们把菜单放在一个div里。页面代码变成:<div class="test"> <ul><li><a href="1">首页</a></li><li><a href="2">产品介绍</a></li><li><a href="3">服务介绍</a></li><li><a href="4">技术支持</a></li><li><a href="5">立刻购买</a></li><li><a href="6">联系我们</a></li></ul> </div>
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;}.test a:visited{color:#666;text-decoration:underline;}.test a:hover{color:#FFF; font-weight:bold;text-decoration:underline;background:#F00;}
效果是:
首页
产品介绍
服务介绍
技术支持
立刻购买
联系我们
第六步:将链接以块级元素显示
有朋友问,菜单链接的背景色为什么没有填满整个li的宽度?恩,解决的方法很简单,在a的样式定义中增加display:block,使链接以块级元素显示。
同时我们微调了如下细节:
用text-align:center将菜单文字居中;
用height:30px增加背景的高度;
用margin-left:3px使每个菜单之间空3px距离;
用line-height:30px;定义行高,使链接文字纵向居中;
CSS定义象这样:.test a{display:block;text-align:center;height:30px;}.test li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}
效果变成:
首页
产品介绍
服务介绍
技术支持
立刻购买
联系我们
这样就漂亮多了吧。
第七步:定义背景图片
我们通常都会在每个链接前加一个小图标,这样导航更清楚。CSS是采用定义li的背景图片来实现的:.test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}.test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;}
说明:“background:url(arrow_off.gif) #CCC no-repeat 5px 12px;”这句代码是一个CSS缩写,表示背景图片是arrow_off.gif;背景颜色是#CCC;背景图片不重复"no-repeat",背景图片的位置是左边距5px、上边距12px;
默认状态下,图标为arrow.off.gif,当鼠标移动到链接上,图标变为arrow_on.gif
效果变成:
首页
产品介绍
服务介绍
技术支持
立刻购买
联系我们
现在css的完整代码是:.test ul{list-style:none;}.test li{float:left;width:100px;background:#CCC;margin-left:3px;line-height:30px;}.test a{display:block;text-align:center;height:30px;}.test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}.test a:visited{color:#666;text-decoration:underline;}.test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;}
页面的完整代码是:<div class="test"><ul><li><a href="1">首页</a></li><li><a href="2">产品介绍</a></li><li><a href="3">服务介绍</a></li><li><a href="4">技术支持</a></li><li><a href="5">立刻购买</a></li><li><a href="6">联系我们</a></li></ul></div>
好了,主要步骤就是这7步,立刻拷贝和修改代码试试,你也可以用CSS做横向菜单了!
|
|
|

.: 公告
我要考研了,努力+坚持!!
未曾艰辛难成人,
不经打击老天真。
自古英雄出炼狱,
从来清闲入凡尘。
此去考研鹿何处?
刻苦复习练金身 !
我辈成就复兴业,
立马横刀定乾坤! |
|
« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
.: 我的分类(专题)
|

.: 最新日志
.: 最新回复
|

blog名称: 日志总数:9 评论数量:5 留言数量:1 访问次数:59288 建立时间:2005年3月14日 |
|

.: 留言板
|

.: 链接
|

|