Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 263|回复: 0

[CSS学习]十步学习css网站布局之第九步:导航条的制作

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-5 23:55:25 | 显示全部楼层 |阅读模式
    第九步:导航条的制作

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






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



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




       Example Source Code
      [www.52css.com]
      

      /* 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,需要加入以下代码:




       Example Source Code
      [www.52css.com]
      

      /* IE5 Mac Hack */
      
    #main-nav { padding-left: 11px; }
      

      
    #main-nav { padding-left: 11px; overflow: hidden; }
      
    /* End Hack */
      

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




       Example Source Code
      [www.52css.com]
      

      #main-nav li { float: left; }
      

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




       Example Source Code
      [www.52css.com]
      

      #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,写入:




       Example Source Code
      [www.52css.com]
      

      #main-nav li a:hover {
      
       background-position: 0 -50px;
      
    }
      

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




       Example Source Code
      [www.52css.com]
      

      #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表现作一些修改:




       Example Source Code
      [www.52css.com]
      

      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中为:




       Example Source Code
      [www.52css.com]
      

      <body class="about">
      

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




       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中添加如下代码):




       Example Source Code
      [www.52css.com]
      

      body.services #header {
      
       height: 150px;
      
       background: #db6d16
      
       url(../images/headers/services.jpg);
      
    }
      

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


      
      
       
       

         
       

         
       
      
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-25 13:28 , Processed in 0.303260 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表