站长学院通行证

 

返回“站长学院”网站首页

 当前位置 → 中国站长学院设计在线网页设计CSS专题 → 浏览正文


css导航条的制作


作者:中国站长学院(整理)     来源:互联网     点击数:     更新时间:2007年10月29日

【字体: 】           【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色) 】    【收藏本文】   【打印


先去掉导航条的红色背景,还有就是移除html文件中main-nav层的"class="hidden"",使导航条的内容显示出来。我们实现导航条图片的变换的方法是纯css代码的,不包含任何js或是flash,因此我们所用的图片是4幅分别由三个小图组合而成的图片,如下所示,并将这4幅图保存于/images/nav/文件夹中:(另存图片后 改成相应的文件名)

 

 

 



  我们实现导航条的动态效果如下图所示:(GIF动画)



在网页显示的只是图中红框标出的部分,如果把每幅图分为上,中,下三部分的话,未发生动作时显示上部,当光标悬停时,显示的是中部,被选择时则显示下部。接下来进入css代码部分,先往css文件中写入:

以下是代码片段:
/* Main Navigation */
#main-nav { height: 50px; }
#main-nav ul { margin: 0; padding: 0; }

注意:/* Main Navigation */为增加css文件可读性的说明,不会影响表现。#main-nav的height属性定义了main-nav层的高度;"#main-nav ul" 则定义main-nav层中列表的属性,在这里先定义其margin和padding为0。

根据先前的设计,导航条应该和左边有一定的距离,这就需要设置main-nav层的左边距(padding-left)为11px,但由于IE5和Mac浏览器的BUG,需要加入以下代码:

以下是代码片段:
/* IE5 Mac Hack \*/ 
#main-nav { padding-left: 11px; } 
/*/ 
#main-nav { padding-left: 11px; overflow: hidden; } 
/* End Hack */
 
现在你可以看到导航列表距左边有11px的距离,但是列表项目是竖排的,将<li>,即列表项目向左对齐就能使其从左到右横向排列:
以下是代码片段:
#main-nav li { float: left; }


为了使列表项目的尺寸和容纳它的层保持一致,并利用浮动属性使列表项目的文本隐藏,写入:

 
以下是代码片段:
#main-nav li a {
display: block;
height: 0px !important;
height /**/:50px; /* IE 5/Win hack */ 
padding: 50px 0 0 0;
overflow: hidden;
background-repeat: no-repeat;
}


接着,要实现当光标悬停于列表项目上时,显示背景图片的中部,因此需要将背景图片向上移动50px,写入:

 
以下是代码片段:
#main-nav li a:hover {
background-position: 0 -50px;
}


给各个列表项目设置宽度和背景图片的路径:

 
以下是代码片段:
#main-nav li#about,
#main-nav li#about a { width: 71px; background-image: url(../images/nav/about.gif); }
#main-nav li#services,
#main-nav li#services a { width: 84px; background-image: url(../images/nav/services.gif); }
#main-nav li#portfolio,
#main-nav li#portfolio a { width: 95px; background-image: url(../images/nav/portfolio.gif); }
#main-nav li#contact,
#main-nav li#contact a { width: 106px; background-image: url(../images/nav/contact.gif); }


最后我们要做的就是,当列表项目被选时,显示背景图片的下部。为此我们需要增加一些css代码对原有的css表现作一些修改:

 
以下是代码片段:
body.about li#about,
body.about li#about a,
body.services li#services,
body.services li#services a,
body.portfolio li#portfolio,
body.portfolio li#portfolio a,
body.contact li#contact,
body.contact li#contact a {
background-position: 0 -100px;
}


以上看似庞大的css选择器可以识别body标签的类(class),如html中为:

 
以下是代码片段:
<body class="about">


以上css选择器就让li#about,li#about a,的背景向上移动100px,使其显示背景图片的下部。如果我们希望网站头部背景图片也根据body标签的类进行变换,就需修改css的#header为:

 
以下是代码片段:
body.about #header {
height: 150px;
background: #db6d16
url(../images/headers/about.jpg);
}


至此就完成了"About"网页的制作,依此类推,修改html中body的类services/portfolio/contact制作相应html文件并分别保存。在css文件中添加各个网页相应的头部背景图片路径(如services网页的头部背景图片为services.jpg,在css中添加如下代码):

 
以下是代码片段:
body.services #header {
height: 150px;
background: #db6d16
url(../images/headers/services.jpg);
}


  然后用超级链接将这些网页连接起来,就组成了一个网站了。


责任编辑:忧郁的秋天

注册投稿

收藏本文到  >>>

相关文章

模板教程【Pagetitle 标记】04/11 
模板教程【Prenext 标记】(十04/11 
模板教程【Pagebreak 标记】04/11 
模板教程【Pagelist 标记】(04/11 
模板教程【List 标记】(十一)04/11 
模板教程【Channelartlis04/11 
模板教程【Mynews 标记】(九)04/11 
模板教程【Flink 标记】(八)04/11 
模板教程【Vote 标记】(七)04/11 
模板教程【Mytag 标记】(六)04/11 
模板教程【Type 标记】(四)04/11 
模板教程【Channel 标记】(三04/11 
模板教程【Field 标记】(二)04/11 
模板教程【Arclist 标记使用实04/11 
DedeCMS模板制作使用实例教程序04/11 
从零开始学DedeCms模板,模板制04/11 

推荐导读

热门资讯

资讯快报

论坛新贴

返回首页

关于我们 - 帮助(?) - 广告服务 - 诚征英才 - 友情链接 - 网站地图 - 站长BLOG

返回网站顶部

Copyright © 2007 中国站长学院(CNZZXY.COM). All Rights Reserved
站长学院服务资咨热线:0755-84289786    业务合作:(0)13554938953  (0)13423986856    网络宽带及主机提供:深圳傲网科技
粤ICP备08006968号   站长:忧郁的秋天(向管理员发邮件)   站长交流QQ群①:1815595   站长交流QQ群②:32960074