css导航栏的疑问

查看:90
本文介绍了css导航栏的疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    <style type="text/css">
      .nav {
        list-style-type: none;
        margin: 0;
        padding: 0;
        background-color: aquamarine;
      }
      ul.nav a {
       float: left;
        display: block;
        height: 2em;
        line-height: 2em;        
      }
    </style>
</head>
<body>
<ul class="nav">
  <li><a href="">home</a></li>
  <li><a href="">likn</a></li>
  <li><a href="">joe</a></li>
</ul>

得到的效果是这样的

奇怪为什么会这样?
应该是这样的吧

li元素是块级元素并且上下摞起来排列的,那么就算a标签浮动起来也是在li元素里的左边啊,怎么会水平排列了?

仔细看了楼下所有小伙伴的答案,结合自己的理解总结一下,浮动不仅看设置了浮动属性的元素本身,还要看它的父元素,如果父元素没有足以支撑浮动元素的宽高设置,那么浮动元素就会带着父元素一起浮动

如果

        li {
            border: 1px solid red;
            height: 20px; /*给li设置高度*/
        }

或者

    <li><a href="">home</a>kkkkk</li>  /*给li填充内容*/
    <li><a href="">concat</a>kkkk</li>
    <li><a href="">back</a>kkkk</li>

感谢楼下各位,谢谢你们的无私分享

解决方案

原因是设置了<a>标签浮动以后,父元素<li>没有被撑开,解决代码:

方案一:

设置<a>为行内块元素

    <style type="text/css">
        .nav {
            list-style-type: none;
            margin: 0;
            padding: 0;
            background-color: aquamarine;
        }
        ul.nav a {
            display: inline-block;
            height: 2em;
            line-height: 2em;
        }
    </style>
</head>
<body>



<ul class="nav">
    <li><a href="">home</a></li>
    <li><a href="">likn</a></li>
    <li><a href="">joe</a></li>
</ul>

方案二:

<li>的after清除浮动

 <style type="text/css">
        .nav {
            list-style-type: none;
            margin: 0;
            padding: 0;
            background-color: aquamarine;
        }
        ul.nav a {
            float: left;
            display: block;
            height: 2em;
            line-height: 2em;
        }
        li:after{
            content: "";
            clear: both;
            display: block;
        }
    </style>
</head>
<body>



<ul class="nav">
    <li><a href="">home</a></li>
    <li><a href="">likn</a></li>
    <li><a href="">joe</a></li>
</ul>

这篇关于css导航栏的疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆