在此示例http://jsbin.com/inoka4中,没有为父元素
定义宽度如果我想在容器边框中包装红色框。
然后我们可以用5种方式做到这一点
float
也提供给<div class="container">
overflow:hidden
或overflow:auto
<div class="container clearfix">
<div class="container">
div
或<br >
)
<div class="container">
中的框在此处输入代码and give
clear:left or
:or
:right` to that
元件 我的问题除float
之外的任何其他选项都不会对<div class="container">
和内部框宽度进行任何更改。但如果我们将float:left
或right
用于父框,那么它也会缩小整个框和内框。
为什么?
编辑:我的问题不在于我应该使用哪种方法,问题是为什么Float缩小宽度
答案 0 :(得分:2)
我认为更好的选择是使用overflow:hidden。这是一个简单的换行,它可以工作。
div#container {
...
overflow: hidden;
}
添加额外的div
以进行明确修复需要在html中更改真正的css。或者,当通过做像......这样的黑客使用清除修复时。
div:after {
content:....
...
}
你的CSS越来越大,越来越混乱。但它仍然是一个不错的选择(特别是当你需要让东西溢出时)
参考: http://net.tutsplus.com/tutorials/html-css-techniques/css-fudamentals-containing-children/
答案 1 :(得分:0)
如果你不在容器上使用浮动,它的宽度设置为100%。如果添加浮动,它只需要占用所需的空间。在这种情况下,宽度由内部的两个div计算。
要将红色框包装在容器边框中,除了向容器添加浮动外,没有其他选项。唯一的另一种选择是绝对定位所有元素,但在这种情况下,您必须事先知道所有元素的宽度和高度。所以这真的不是一种选择。
所以我的建议是在容器上使用float并在容器后面的元素上添加一个clear:
答案 2 :(得分:0)
你最好的办法是永远清理你的花车。在你用类.right关闭div之前,就在你用类.container关闭div之前,添加一个像这样的新div:
<div class="clear"></div>
.clear只是样式表中的{clear:both;}
。这就是我整天使用的东西,就像一种享受。
最终的标记是:
<div class="container">
<div class="left"> ... </div>
<div class="right"> ... </div>
<div class="clear"></div>
</div>
编辑:就像你上一个例子一样,显然。 :)