十、css网站元素设计——横向导航制作
导航在网站中起着举足轻重的作用,常见的导航形式主要有横向导航、纵向导航和下拉式导航等三种形式。
传统的导航是表格式布局,不仅代码量大,后期维护起来也不方便,而且也没有实现表现与内容的分离,显然不符合web2.0的标准。下面我们重点来看css是如何实现横向导航的。
先看代码:
- <ul id=“nav”>
- <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>
这里我们引入了一个新的元素ul。ul是CSS中使用相当广泛的一种元素,主要用来描述列表型内容。每一个<ul></ul>相当于一个列表块,块中的每一条列表数据用<li></li>来描述,下图是一个不加样式的ul实现的样式效果:
如图:导航对比
显然,ul默认加上了圆点序号,而且自上而下排列。实际上导航可以理解为导航列表,每一个列表数据就可以看做是一个频道,当然也可以用二层嵌套div来实现导航代码结构,但相对于ul来说,div显然过于复杂,而且我们之前也说过,div主要是用来大范围的样式布局。而类似于导航的块状型区域则主要交给ul来处理。
下面我们来看为其实现样式的css代码:
- <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
- <html>
- <head>
- <title></title>
- <style type=“text/css”>
- <!–
- ul{list-style-type:none;} /*去除列表项前端的项目符号*/
- ul li{float:left;} /*使列表项不再遵循默认的自上而下样式,而类似于div的向左浮动属性,使右侧对象紧贴左侧最终形成横向排列样式*/
- ul li a{display:block;/*块状显示,在第三节讲div的时候曾提过,此处的作用就是把a链接对象由一段文本改为块状对象,使其具备div的一些特性,从而实现内外边距,边框背景等属性*/
- margin-left:10px; /*左外边距*/
- width:60px; /*块宽度*/
- height:16px; /*块高度*/
- padding-top:4px; /*上内边距*/
- text-align:center; /*文本距中显示*/
- background-color:#cecece; /*块背景色*/
- color:#009900; /*字体颜色*/
- font-size:12px; /*字体大小*/
- text-decoration:none;} /*字体装饰无下划线*/
- ul li a:hover{color:#fff; /*伪类:指向链接时的字体颜色*/
- background-color:#33ccff; /*伪类:指向链接时的背景色*/
- text-decoration:underline; /*伪类:指向链接时的字体装饰*/
- }
- –>
- </style>
- </head>
- <body>
- <ul id=“nav”>
- <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、以下两句都使用了包含选择符。
ul li{}
ul li a{}
2、用ul实现的横向导航显然用了极少的代码量实现了丰富的效果,这是表格所不及的。而且在后期增删频道更为方便。
下面我们对代码修改以实现如下样式:
如图:导航示例
因为有图片,所以要下载示例文件。
代码如下:
- <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
- <html>
- <head>
- <title>横向分类导航-css系列教程-超级宝贝-http://www.chaojibaby.com</title>
- <style type=“text/css”>
- <!–
- body{margin:0px;}
- #header{margin:0px auto;width:780px;height:90px;background-color:#000;padding:0px;}
- #header img{position:relative;top:20px;left:30px;} /*相对定位,位置根据前一对象进行偏移*/
- #nav{
- list-style:none;
- position:relative; /*相对定位,位置根据前一对象进行偏移*/
- top:37px;
- left:300px;
- width:500px;/*此处须设定宽度,否则在IE与Firefox里不一致且不正常*/
- }
- #nav li{float:left;}
- #nav li a{display:block;
- margin-left:10px;
- width:69px;
- height:16px;
- padding-top:4px;
- text-align:center;
- background-image:url(nav.gif);
- background-position:0px -22px; /*背景绝对定位,只显示背景图片的下部分*/
- color:#009900;
- font-size:12px;
- letter-spacing :10;
- text-decoration:none;}
- #nav li a:hover{color:#fff;
- background-image:url(nav.gif);
- background-position:0px 0px;/*背景绝对定位,只显示背景图片的上部分,此代码不能省略,因为上面曾指定了背景样式,帮在此处覆盖*/
- text-decoration:underline;
- }
- –>
- </style>
- </head>
- <body>
- <div id=“header”>
- <a href=“http://www.chaojibaby.com”><img src=“css_desiger.gif” alt=“超级宝贝” border=“0″ /></a>
- <div id=“nav”>
- <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>
- </div>
- </div>
- </body>
- </html>
特别说明:
此处顺便讲解了如何应用了背景图片的绝对定位属性,把原本两个不同色调的图片合二为一,然后定位显示。从而丰富导航的样式。当然背景属性此处不做重点,我们会在以后的教程中详细讲解。
通过这两个示例的练习,想必大家都能做出漂亮的横向导航了吧。下一节我们将来制作纵向导航
原文地址:http://www.chaojibaby.com/blog/article.asp?id=115
作者:Johnny
原文链接:十、css网站元素设计——横向导航制作
声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 寂寞部屋


Recent Comments