【问题标题】:Floated div does not expand to full width of parent div. Why?浮动 div 不会扩展到父 div 的全宽。为什么?
【发布时间】:2016-01-02 20:15:56
【问题描述】:

根据BrainJar.com's positioning article的这段摘录

首先,被浮动的盒子应该有一个为它定义的宽度, 显式或隐式。否则,它将填充其 水平包含块,就像非浮动内容一样,离开 没有空间让其他内容在其周围流动。

但是在下面的代码中,这不会发生,即浮动 div 没有扩展到它的父容器全宽,并且浮动 div 上没有定义宽度。

HTML

    <div id="container">
         <div id="aqua">aqua</div> 
         <div id="yellow">yellow</div> 
         <div id="pink">pink</div>
    </div>

CSS

#container { border:1px solid red} 
#aqua, #yellow { border:1px solid green; float:left;}   
#pink { width:150px; border:1px solid blue; }

我有兴趣知道它背后的原因。

谢谢

【问题讨论】:

标签: css css-float


【解决方案1】:

为什么它在 Brainjar.com 中起作用是因为浮动内容填充了内容,因此如果浮动元素上省略了宽度,它们会扩展到其父宽度。

所以声明

否则,它将水平填充其包含块,就像 非浮动内容,没有空间让其他内容四处流动 它。

如果浮动元素为空或内容小于容器的宽度,则会出错。

更多关于花车的信息:https://developer.mozilla.org/en-US/docs/Web/CSS/float

用更多内容填充您的示例表明它是这样工作的。

#container { border:1px solid red} 
#blue, #aqua, #yellow { border:1px solid green; float:left;}   
#pink { width:150px; border:1px solid blue; }

#pink { clear: left }
<div id="container">
	 <div id="aqua">aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua aqua</div> 
	 <div id="yellow">yellow</div>
	 <div id="blue">blue</div>
	 <div id="pink">pink</div>
</div>

【讨论】:

  • 好的。正如我们所知,浮动元素从文档流中取出,并且之前和之后创建的任何块级元素都将忽略浮动元素,那么为什么这些元素中的文本内容在浮动元素右边缘之后开始呢?它们不应该从父框边缘开始吗?
  • @dkjain 不,浮动元素一个接一个地堆叠,直到它们将清除其浮动(或者没有足够的空间容纳最后一个元素)。正如Brainjar.com 在文章中所写的那样,它们不像块级那样表现。我更新了我的答案示例以显示它是如何工作的。
  • @dkjain 我还在 Brainjar.com 的 网站上发表了评论,建议他们更正这些陈述以免误导读者。希望你能很快找到更新,用不同的说法。
【解决方案2】:

你是不是想填满整个宽度?或者你想要一个解释?

如果您只想要全宽,只需将 width: 100%; 添加到您的浮动 ID 中

【讨论】:

  • 我知道这可以通过 width:100% 在浮动 div 上完成,但是我正在寻找解释为什么会出现这种行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
相关资源
最近更新 更多