HTML+CSS实现二级导航

一. 简单的说就是列表里面再嵌套一个列表:
<ul id="nav">
<li><a href="#">HTML教程</a>
    <ul>
        <li><a href="#">辉辉傻逼  </a></li>
        <li><a href="#">辉辉傻逼  </a></li>
        <li><a href="#">辉辉傻逼  </a></li>
    </ul>
</li>
</ul> 
二. css样式设置

应由外向内设置样式。

先介绍几种样式:

  1. display:block:表示元素显示为行级元素,独占一行。可设置元素的宽度和高度。
    display:inline-block:表示元素显示为内联行级元素,既可并排显示,也可设置元素的宽度和高度。
  2. font:14px/20px arial;表示字体大小为14px,行高为20px,字体为arial;相当于下面三行代码:
font-size:14px;
line-height:20px;
font-family:arial;

其中,将line-height设置为与容器的高度相等可实现元素垂直居中,text-align只能实现水平居中。

  1. 要想让标签ul里面的标签li里面的元素并排显示,必须将最外层li样式设置为display:inline-block;否则一行只能显示一个li元素。并且标签li里面的超链接样式也要设置为display:inline-block;才能进行相应的样式设置,否则样式设置受到限制。
#nav li{
         display:inline-block;
    } 
#nav li a{
         display:inline-block;
         padding:0 20px;
         color:#FFF;
         text-decoration:none;
         font:17px/60px arial;/*17px代表字体大小,60px代表行高,arial代表字体;*/
    } 
  1. 将li标签里面的嵌套列表ul的定位设置为绝对定位position:absolute;表示相对于父级元素定位,要想让二级列表里面的内容隐藏起来,则将ul样式设置为display:none;.
#nav  li ul { 
        position:absolute; 
        display:none;
}
  1. 这点特别关键,决定了二级菜单的下拉效果垂直显示,否则下拉后只能并排显示。
#nav li ul li {
             display: block;
}
  1. 接下来可将二级菜单中的超链接a的背景颜色设置为与一级菜单中的一样,让看起来像个整体。
#nav li ul li a {
            background:#00A2CA;
}
  1. 这点也非常重要,决定了二级列表能否显示。即当鼠标移到一级菜单上时,二级菜单能否下拉。
#nav li:hover ul{
            display:block; 
}
三.整体代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            body{
                margin:0;
                padding:0;
                text-align:center;
            }
            ul, li{
                margin:0; 
                padding:0;
                font-style: normal;
                list-style:none;
            } 
            #nav{
                width:100%; 
                height:60px; 
                background:#00A2CA;
                margin:0 auto;
                overflow:hidden;
            } 
            #nav li{
                display:inline-block;
            } 
            #nav li a{
                display:inline-block;
                padding:0 20px;
                color:#FFF;
                text-decoration:none;
                font:17px/60px arial;/*17px代表字体大小,60px代表行高,arial代表字体;*/
            } 
            #nav li a:hover{
                background:#0095BB;
            } 

            #nav  li ul { 
                position:absolute; 
                display:none;
            }
            
            #nav li ul li {
                 display: block;
            }
            
            #nav li ul li a {
                background:#00A2CA;
            }
            
            #nav li:hover ul{
                display:block; 
            }
        </style>
    </head>
    <body>
        <ul id="nav"> 
            <li><a href="http://www.imooc.com">首页</a></li> 
            <li><a href="#">HTML教程</a>
                <ul>
                    <li><a href="#">辉辉傻逼  </a></li>
                    <li><a href="#">辉辉傻逼  </a></li>
                    <li><a href="#">辉辉傻逼  </a></li>
                </ul>
            </li> 
            <li><a href="#">CSS基础</a>
                <ul>
                    <li><a href="#">辉辉最帅</a></li>
                    <li><a href="#">辉辉最帅</a></li>
                    <li><a href="#">辉辉最帅</a></li>
                    <li><a href="#">辉辉最帅</a></li>
                </ul>
            </li> 
            <li><a href="#">CSS开发工具</a>
                <ul>
                    <li><a href="#">heheheheheH</a></li>
                    <li><a href="#">heheheheheH</a></li>
                    <li><a href="#">heheheheheH</a></li>
                    <li><a href="#">heheheheheH</a></li>
                    <li><a href="#">heheheheheH</a></li>
                </ul>
            </li> 
            <li><a href="#">CSS特效</a></li> 
            <li><a href="#">CSS问题</a></li> 
        </ul>        
    </body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 纯CSS3制作二级菜单特效 基础掌握知识:1.boder-radis圆角的制作 2.linear-gradient...
    Iris_mao阅读 9,395评论 2 17
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 7,488评论 0 30
  • 我是这样告诉爸爸我要去万达吃饭的,但实际我并不是而是要去参加一场战斗,为了复仇。 在这个时间之前我和我的伙伴本来很...
    爱梦的我阅读 923评论 0 0
  • (一) 亚的斯亚贝巴街头,随处可见席地而睡的人,以及沿街乞讨的人。 在圣玛利亚教堂,我和小陈一起...
    丫头利贞阅读 1,352评论 0 1