我不完全确定我从哪里得到这个,但作为一个习惯规则,如果我在一些浮动元素之后有一个清晰的 div,我会执行以下操作。
<div class='clear'></div>
然后在css中
.clear{ clear:both; width 100% }
在大多数情况下,这让我作为一名开发人员经历了多年,直到今天。
今天我发现 100% 宽度位打破了 IE7 中的布局,删除了固定它的宽度。
我的问题很简单:是否有任何理由为什么需要在清晰的 div 上设置宽度?
在不需要额外 HTML 元素的浮动元素之后,有一种更好的清除方法。通常,您希望 HTML 尽可能直观和语义化,并将所有设计和视觉辅助工具留给 CSS。
如果我有以下 HTML:
<div class="container">
<div class="floated-left"></div>
<div class="floated-right">
</div></div>
<div class="some-non-floating-content"></div>
CSS:
overflow approach:
.container {
overflow: auto;
width: 100%;
}
:after approach:
.container:after {
content: '';
display: block;
height: 0;
clear: both;
}
您可以在此处阅读有关这些语义化方法的更多信息:http: //css-tricks.com/all-about-floats/和此处http://www.positioniseverything.net/easyclearing.htmls
为了回答您关于宽度的具体问题,我只知道在应用溢出以确保容器不会崩溃时需要它。
我总是使用clear: both
或只使用左/右以避免 IE 上的额外空格(示例)。
所以,如果总是对我有用,在所有浏览器中,AFAIK 没有一般的原因width: 100%
。