我见过很多人在元素上使用以下样式:
float:left; width:100%;
这是什么意思,因为我认为浮动是为了让块级元素可以彼此相邻(如果它们是 100% 宽,它们就不会)
这个浮动是否会留下一些在学校或某处网站上教授的东西,因为我也看到人们将其包含* {float:left;}
在他们的样式表中。
我见过很多人在元素上使用以下样式:
float:left; width:100%;
这是什么意思,因为我认为浮动是为了让块级元素可以彼此相邻(如果它们是 100% 宽,它们就不会)
这个浮动是否会留下一些在学校或某处网站上教授的东西,因为我也看到人们将其包含* {float:left;}
在他们的样式表中。
当你float
处理事情时,其他关于如何处理它们的事情也会改变。例如,看看这个小提琴:
注意包含浮动元素的 div 是如何折叠的,而另一个没有。
编辑:
我用一个示例更新了小提琴,该示例说明了如何使用以下方法防止父级崩溃overflow
:
这看起来像是采用了“浮动几乎所有东西”(fne)方法: http: //orderedlist.com/blog/articles/clearing-floats-the-fne-method/(2004 年 10 月)
有人想要这样做的原因是在不需要它们的情况下包含他们的浮动clear
。浮动元素引入了一个新的块格式化上下文,因此将包含任何后代浮动元素。阅读:https ://developer.mozilla.org/en-US/docs/Web/CSS/Block_formatting_context以及CSS 块格式化上下文如何工作?
我建议避免浮动一些你不想放在其他东西旁边的东西,并寻找一种不同的方法来包含浮动,其中有几种。
查看这篇文章,了解一些最佳选择(到目前为止我已经看到):http ://colinaarts.com/articles/float-containment/
摘自上述文章:
#foo {
overflow: hidden; /* For modern browsers and IE7 */
display: inline-block; /* For IE6 */
}
#foo { display: block; } /* For IE6 */
这确实令人困惑,虽然不像你评论的那么简单:
我认为浮动是为了让块级元素可以彼此相邻(如果它们是 100% 宽,它们就不会)”
浮动元素不在常规文档流中——而是根据正常流布局浮动框,然后从流中取出并尽可能向左或向右移动。因此,任何浮动元素都会从其父元素中获取 100% 的宽度,而不是它在重新定位后出现的元素。
指定width:100%
仍然是完全多余的,因为浮点数是block
元素,因此在大多数情况下不需要 100% 宽度指定。