先来分析一下这个导航栏要用到多少个盒子,在分析之前我们还是要形成一种思想:尽量减少和优化XHTML代码,让他们基本上都有语义。这个导航栏最少的盒子实现是:最外边一个大盒子(ul),这个盒子与1像素高的背景图片等宽,里面又有五个小盒子(li)分别装着每一个导航栏,这个盒子与“勾月”图形等高,导航栏这个盒子里面又装着一个稍小的盒子(a),这个盒子又装着一个黄色的修饰盒子(a的左边框,这里勉强理解为盒子,因为它不像一般的边框那么细,在网页中看起来像个盒子)和一个有文字的链接盒子(a的内容)。
网页结构代码:
<ul id="nav"> <li> <a href="#">彻底弄懂CSS盒子模式1</a> </li> <li> <a href="#">彻底弄懂CSS盒子模式2</a> </li> <li> <a href="#">彻底弄懂CSS盒子模式3</a> </li> <li> <a href="#">彻底弄懂CSS盒子模式4</a> </li> <li> <a href="#">彻底弄懂CSS盒子模式5</a> </li> </ul>
1.现在正式开始做,做之前初始化一下各签标的边界和填充,这里用样式:
* { margin: 0px; padding: 0px; }
2.组装最外边的大盒子ul,宽200px,高为自动auto或者干脆不要,背景图片为bj.jpg,背景纵向重复,用<ul id=”nav”>方式引用样式,用到样式:
#nav { background: url(bj.jpg) repeat-y; width: 200px; overflow: hidden; }
3.组装每条导航的盒子li,这个盒子与“勾月”图形等高,并把“勾月”图形以背景形式放在这个盒子的左边,并用15px的填充把盒子内容区块推向正中合适位置(当然你也可以考虑给子级a指定边界属性来实现),并让这个盒子靠左边对齐(因为这个盒子的宽度比外边的大盒子小,如果相等则可以不用考虑对齐方式),这里用到样式float的属性,本人没有写入样式中则取其默认值,样式代码如下:
#nav li { background: url(lan.gif) no-repeat left center ; height: 35px; width: 190px; padding-top:15px; }
4.组装链接盒子a,这里用到样式: display: block;让链接以块状方式呈现,并为链接安排背景图片,为了安全起见设置背景不重复,垂直居中(如果浏览器出错解释错误,而你的背景又不是纯色的,那么盒子过大导致的背景重复将会影响网页美观),链接文字样式去除下划线,整个盒子右对齐,样式如下:
#nav a { background: url(lanbj2.gif) no-repeat left center; text-decoration: none; height: 20px; width: 155px; display: block; float: right; padding: 0px 0px 0px 5px; font-weight: bold; font-size: 9pt; line-height: 20px; color: #630; }
5.组装黄色修饰块盒子(a的左边框,如果又独立用一个盒子来做就不科学了,因为此方法最简单),直接给a加入下面一条样式即可,样式代码如下:
#nav a { border-left:10px solid #f90; }
6.最后简单为鼠标移到链接上时,链接风格的改变指定一个样式:
#nav a:hover { background-image: url(lanbj3.gif); color: #FFFFFF; }
至此完成样式代码编写,上面已给出内容部分的结构代码,把它们结合到网页中就算是完成本次导航栏的制作。再次感谢本专栏斑竹blankzheng指点优化。
源文件打包下载 xhtml.rar
经典论坛讨论 http://bbs.blueidea.com/thread-2731165-1-1.html
本文链接:http://www.blueidea.com/tech/web/2007/4563.asp
出处:蓝色理想
责任编辑:feng4ever
上一页 导航栏实例详解 [1] 下一页
◎进入论坛网页制作、网站综合版块参加讨论
|