【问题标题】:Does overflow:hidden not work on floats?溢出:隐藏在浮动上不起作用吗?
【发布时间】:2012-01-16 03:10:22
【问题描述】:

在这个小提琴:http://jsfiddle.net/herrturtur/Mem6u/ 中,有一个容器 div 带有溢出:隐藏,以及六个包含的 div 向左浮动。

在六个 div 中,我希望任何时候只有三个在 #container 中可见,并且我调整了容器的大小并相应地包含了 div。

然而所有六个 div 是同时显示的。为什么?

【问题讨论】:

    标签: html css


    【解决方案1】:

    不知道你到底想做什么,但是:

    div #container {
       width: 520px;
       overflow: hidden;
       height: 1px solid;
    }
    

    有两个问题:

    • div #container 应该是 div#container(或删除 div)。现在的方式不适用于container,因为它没有div 祖先
    • height: 1px solid; 无效

    【讨论】:

      【解决方案2】:

      为什么? 浮动元素不在流中,父元素不知道它们。因此,它们漂浮在父容器之外

      您可以使用 clear fix 方法来包含浮动...clearfix

      【讨论】:

      • 不。浮动元素在流中。它们不限于父元素,除非它具有 overflow 设置,但这并不是因为它们不在流中。
      • "使用 'float' 属性,可以将元素声明为在正常元素流之外,然后将其格式化为块级元素。"看Floating elements
      • 是的,元素在正常流之外,但它们仍然放在流中,它们会影响正常流的元素。浮动元素不浮动在父元素之外,但可以延伸到父元素之外。
      【解决方案3】:

      当你使用浮动元素时,你必须同时浮动父元素,否则它们会一起落下。

      将“#container”、“#first”和“#second”也设置为float:left,您的问题就解决了。

      【讨论】:

      • 不幸的是,#container float left 没有解决问题。我更新了小提琴以反映您的建议。
      猜你喜欢
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多