zoukankan      html  css  js  c++  java
  • 用CSS制作导航条方法

     

    第一步:建立一个无序列表
    我们先建立一个无序列表,来建立菜单的结构。代码是:

    <ul>
    <li><a href="1">首页</a></li>
    <li><a href="2">产品介绍</a></li>
    <li><a href="3">服务介绍</a></li>
    <li><a href="4">技术支持</a></li>
    <li><a href="5">立刻购买</a></li>
    <li><a href="6">联系我们</a></li>
    </ul>
    第二步:隐藏li的默认样式
    因为看起来不是很好看,菜单通常都不需要li默认的圆点,我们给UL定义一个样式来消除这些圆点。

    当然,为了更好的控制整个菜单,我们把菜单放在一个div里。页面代码变成:

    <div class="test"> <ul>
    <li><a href="1">首页</a></li>
    <li><a href="2">产品介绍</a></li>
    <li><a href="3">服务介绍</a></li>
    <li><a href="4">技术支持</a></li>
    <li><a href="5">立刻购买</a></li>
    <li><a href="6">联系我们</a></li>
    </ul> </div>
    CSS定义为:

    .test ul{list-style:none;}
    说明:“.test ul”表示我要定义的样式将作用在test的层里的ul标签上。

    现在的效果是没有圆点了


    第三步:关键的浮动
    这里是菜单变成横向的关键,我们给li元素加上一个“float:left;”属性,让每个li浮动在前面一个li的左面。

    CSS定义为:

    .test li{float:left;}
    看,菜单变横向了。就这么简单!下面需要做的就是优化细节了。

    第四步:调整宽度
    菜单都挤在一起不好看怎么办?我们来调节li的宽度。

    在CSS中添加定义100px指定一个li的宽度是100px,当然你可以根据你的需要调整数值:

    .test li{float:left;100px;}
    如果我们同时定义外面div的宽度,li就会根据div的宽度自动换行,例如定义了div宽350px,6个li的总宽度是600px,一行排不下就自动变成两行:

    .test{350px;}
    第五步:设置基本链接效果
    接下来,我们通过CSS来设置链接的样式,分别定义:link、:visited、:hover的状态

    .test a:link{color:#666;background:#CCC;text-decoration:none;}
    .test a:visited{color:#666;text-decoration:underline;}
    .test a:hover{color:#FFF; font-weight:bold;text-decoration:underline;background:#F00;}

    第六步:将链接以块级元素显示

    有朋友问,菜单链接的背景色为什么没有填满整个li的宽度?恩,解决的方法很简单,在a的样式定义中增加display:block,使链接以块级元素显示。

    同时我们微调了如下细节:

    用text-align:center将菜单文字居中;
    用height:30px增加背景的高度;
    用margin-left:3px使每个菜单之间空3px距离;
    用line-height:30px;定义行高,使链接文字纵向居中;
    CSS定义象这样:

    .test a{display:block;text-align:center;height:30px;}
    .test li{float:left;100px;background:#CCC;margin-left:3px;line-height:30px;}
    这样就漂亮多了吧。

    第七步:定义背景图片
    我们通常都会在每个链接前加一个小图标,这样导航更清楚。CSS是采用定义li的背景图片来实现的:

    .test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}
    .test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;}
    说明:“background:url(arrow_off.gif) #CCC no-repeat 5px 12px;”这句代码是一个CSS缩写,表示背景图片是arrow_off.gif;背景颜色是#CCC;背景图片不重复"no-repeat",背景图片的位置是左边距5px、上边距12px;

    默认状态下,图标为arrow.off.gif,当鼠标移动到链接上,图标变为arrow_on.gif


    现在css的完整代码是:

    .test ul{list-style:none;}
    .test li{float:left;100px;background:#CCC;margin-left:3px;line-height:30px;}
    .test a{display:block;text-align:center;height:30px;}
    .test a:link{color:#666;background:url(arrow_off.gif) #CCC no-repeat 5px 12px;text-decoration:none;}
    .test a:visited{color:#666;text-decoration:underline;}
    .test a:hover{color:#FFF; font-weight:bold;text-decoration:none;background:url(arrow_on.gif) #F00 no-repeat 5px 12px;}
    页面的完整代码是:

    <div class="test">
    <ul>
    <li><a href="1">首页</a></li>
    <li><a href="2">产品介绍</a></li>
    <li><a href="3">服务介绍</a></li>
    <li><a href="4">技术支持</a></li>
    <li><a href="5">立刻购买</a></li>
    <li><a href="6">联系我们</a></li>
    </ul>
    </div>

  • 相关阅读:
    Linux时间子系统之一:clock source(时钟源)
    已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?
    Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
    Linux SPI总线和设备驱动架构之三:SPI控制器驱动
    Linux SPI总线和设备驱动架构之二:SPI通用接口层
    Linux SPI总线和设备驱动架构之一:系统概述
    C语言文件操作详解
    揭开网络编程常见API的面纱【上】
    利用ps指令查看某个程序的进程状态
    内存管理
  • 原文地址:https://www.cnblogs.com/weixiao/p/2193468.html
Copyright © 2011-2022 走看看