第九步:导航条的制作

导航条之所以放在第九步讲,是因为导航条制作是本教程中最难的部分,自然也是技术含量最高的地方.导航条的制作可易可难,但这里介绍的相对较难,您能坚持到这一步已经很不易,如果你只是有个导航条就满足的话,请参看第八步的副导航条的制作。
  先去掉导航条的红色背景,还有就是移除html文件中main-nav层的"class="hidden"",使导航条的内容显示出来。我们实现导航条图片的变换的方法是纯css代码的,不包含任何js或是flash,因此我们所用的图片是4幅分别由三个小图组合而成的图片,如下所示,并将这4幅图保存于/images/nav/文件夹中:(另存图片后改成相应的文件名)






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



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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
/*MainNavigation*/
#main-nav{height:50px;}
#main-navul{margin:0;padding:0;}


  注意:/*MainNavigation*/为增加css文件可读性的说明,不会影响表现。
  #main-nav的height属性定义了main-nav层的高度;"#main-navul"则定义main-nav层中列表的属性,在这里先定义其margin和padding为0。
  根据先前的设计,导航条应该和左边有一定的距离,这就需要设置main-nav层的左边距(padding-left)为11px,但由于IE5和Mac浏览器的BUG,需要加入以下代码:

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
/*IE5MacHack\*/
#main-nav{padding-left:11px;}
/*/
#main-nav{padding-left:11px;overflow:hidden;}
/*EndHack*/


  现在你可以看到导航列表距左边有11px的距离,但是列表项目是竖排的,将<li>,即列表项目向左对齐就能使其从左到右横向排列:

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
#main-navli{float:left;}


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
#main-navlia{
display:block;
height:0px!important;
height/**/:50px;/*IE5/Winhack*/
padding:50px000;
overflow:hidden;
background-repeat:no-repeat;
}


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
#main-navlia:hover{
background-position:0-50px;
}


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
#main-navli#about,
#main-navli#abouta{width:71px;background-image:url(../images/nav/about.gif);}
#main-navli#services,
#main-navli#servicesa{width:84px;background-image:url(../images/nav/services.gif);}
#main-navli#portfolio,
#main-navli#portfolioa{width:95px;background-image:url(../images/nav/portfolio.gif);}
#main-navli#contact,
#main-navli#contacta{width:106px;background-image:url(../images/nav/contact.gif);}


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
body.aboutli#about,
body.aboutli#abouta,
body.servicesli#services,
body.servicesli#servicesa,
body.portfolioli#portfolio,
body.portfolioli#portfolioa,
body.contactli#contact,
body.contactli#contacta{
background-position:0-100px;
}


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
<bodyclass="about">


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
body.about#header{
height:150px;
background:#db6d16
url(../images/headers/about.jpg);
}


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

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
body.services#header{
height:150px;
background:#db6d16
url(../images/headers/services.jpg);
}


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值