第九步:导航条的制作

第九步:导航条的制作导航条之所以放在第九步讲,是因为导航条制作是本教程中最难的部分,自然也是技术含量最高的地方.导航条的制作可易可难,但这里介绍的相对较难,您能坚持到这一步已经很不易,如果你只是有个导航条就满足的话,请参看第八步的副导航条的制作。  先去掉导航条的红色背景,还有就是移除html文件中main-nav层的”class=”hidden””,使导航条的内容显示出来。我们实现导航条图片的变换的方法是纯cs

大家好,又见面了,我是你们的朋友全栈君。 

导航条之所以放在第九步讲,是因为导航条制作是本教程中最难的部分,自然也是技术含量最高的地方.导航条的制作可易可难,但这里介绍的相对较难,您能坚持到这一步已经很不易,如果你只是有个导航条就满足的话,请参看第八步的副导航条的制作。
  先去掉导航条的红色背景,还有就是移除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]
/* 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,需要加入以下代码:

div css xhtml xml Example Source Code 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>,即列表项目向左对齐就能使其从左到右横向排列:

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

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

div css xhtml xml Example Source Code 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,写入:

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
#main-nav li a:hover {

background-position: 0 -50px;
}

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

div css xhtml xml Example Source Code 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表现作一些修改:

div css xhtml xml Example Source Code 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中为:

div css xhtml xml Example Source Code Example Source Code[www.52css.com]
<body class=”about”>

  以上css选择器就让li#about,li#about a,的背景向上移动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);
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163182.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu下安装eclipse

    Ubuntu下安装eclipse

    2021年12月2日
    41
  • Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫…

    Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫…

    2021年9月23日
    49
  • python官网下载步骤-windows下载并安装Python的具体步骤

    python官网下载步骤-windows下载并安装Python的具体步骤安装Python下载并安装PythonPython的官网是www.python.org,我们可以直接从官网下载Python。这里介绍在微软Windows和苹果MacOS两种系统中的安装方式。如果Python官网页面之后有所更新,那请大家用自己的思维能力和观察力,大胆地尝试,推测如何下载安装,解决问题。1.5.1Windows系统进入https://www.python.org/页面,选…

    2022年5月1日
    88
  • python lambda表达式详解_lambda python

    python lambda表达式详解_lambda pythonlambda表达式是现代编程语言争相引入的一种语法,如果说函数是命名的、方便复用的代码块,那么lambda表达式则是功能更灵活的代码块,它可以在程序中被传递和调用。回顾局部函数回顾《Python函数高级用法》一节中,get_math_func()函数将返回三个局部函数之一。该函数代码如下:defget_math_func(type):#定义三个局部函数…#返回局部函数ifty…

    2022年8月31日
    3
  • 打包pycharm里的文件_eclipse打包成exe文件

    打包pycharm里的文件_eclipse打包成exe文件前期准备:安装pyinstaller方法一:在PyCharm中打包点击底部的【Terminal】打开终端,输入命令pyinstaller–console–onefile***.py或者输入命令pyinstaller-F-w*.py成功后在工程目录下/dist文件夹中会有打包好的exe文件方法二:在源码所在目录下,进入DOS窗口,输入pyinstaller-F-w*.py-F(注意大写)是所有库文件打包成一个exe,-w是不出黑色控制台窗口。不加-F参.

    2022年8月27日
    4
  • java中字符串String格式转化成json格式[通俗易懂]

    java中字符串String格式转化成json格式[通俗易懂]一、将Sting转为Json在开发中,经常是前端发送一串数据过来之后,是通过一个参数带着一串值过来,这一串值是String格式的,但是里面的内容其实是json格式类型的,所以拿到值之后就要将该值转化成json格式,然后获取里面指定的key就可以拿到该值了。JSONObjectjsonObject=JSON.parseObject(tt);这样就可以将一串参数转化成json对象了,然后通过下面指定的key获取特定的值,如下面所示Stringimei=(String)jsonObjec

    2022年8月23日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号