美文网首页
css 中 overflow: hidden清楚浮动的真正原因

css 中 overflow: hidden清楚浮动的真正原因

作者: 杨小样儿2013 | 来源:发表于2018-03-14 14:19 被阅读0次
本文章复制链接

原文

其他参考

先贴段代码
    <!DOCTYPE html>
      <html>
        <style>
* {
    margin: 0;
    padding: 0;
}
ul {
    list-style-type: none;
    overflow: hidden;
    background-color: #333;
}
li {
    float: left;
}
li a {
    display: block;
    color: red;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}
  </style>
  <meta charset="utf-8">
    <body>
<ul>
    <li><a class="active" href="#home">Home</a></li>
    <li><a href="#news">News</a></li>
    <li><a href="#contact">Contact</a></li>
    <li><a href="#about">About</a></li>
</ul>
        </body>
        </html>

2.出现如下显示, 宽度为浏览器宽度


image.png
  1. 去掉overflow: hidden后, 可以看到


    image.png
  2. 为什么去掉ul去掉overflow: hidden之后没在了, 其实不是没在了, 看到由于没有设置高度, height: auto为自动值, 就是根据里面的内容自动设置高度, 但是li设置了左浮动, 已经浮动起来了属于浮动流, 不在普通流中, 但是ul还是在普通流, 他普通流中的内容为空, 所以没有高度.


    image.png
  3. 做个实验, 去掉ul的overflow: hidden后, 在里面加入一个普通流的<span>, 可以看到下面效果, ul的高度就是span撑起来的高度

     <ul><span style="color:white">我是普通流</span>
    <li><a class="active" href="#home">Home</a></li>
    <li><a href="#news">News</a></li>
    <li><a href="#contact">Contact</a></li>
    <li><a href="#about">About</a></li></ul>
    
  4. 绕了一圈, 回到正题, 首先说下overflow的意思: 属性规定当内容溢出元素框时发生的事情, w3school解释如下, 简单的说hidden 的意思是超出的部分要裁切隐藏掉


    image.png

相关文章

网友评论

      本文标题:css 中 overflow: hidden清楚浮动的真正原因

      本文链接:https://www.haomeiwen.com/subject/zhuzfftx.html