什麼是一般好的方式來清除和uncollapse頁邊距與CSS沒有副作用(也不額外的HTML元素)?用CSS清除修復和未摺疊的邊緣而沒有副作用?
下引起副作用(並想避免它們):
- 設置
overflow: hidden
或overflow: auto
: 剪輯box-shadow
,CSS轉換和其他內容一個可能要條條框框顯示。因此它不能在幾種情況下使用(但其他方面效果很好)。 - 設置
border
或padding
:明顯的定位/尺寸效應。
什麼是一般好的方式來清除和uncollapse頁邊距與CSS沒有副作用(也不額外的HTML元素)?用CSS清除修復和未摺疊的邊緣而沒有副作用?
下引起副作用(並想避免它們):
overflow: hidden
或overflow: auto
: 剪輯box-shadow
,CSS轉換和其他內容一個可能要條條框框顯示。因此它不能在幾種情況下使用(但其他方面效果很好)。border
或padding
:明顯的定位/尺寸效應。明確和崩潰修復的基礎上,this clear fix,與新增保證金uncollapse:
.group:before, /* :before to uncollapse the top margin */
.group:after{
display: block;
clear: both; /* clear fix */
content: "\a0 "; /* - just a space doesn't uncollapse margins */
visibility: hidden; /* make sure not to show anything */
height: 0;
}
.group{
zoom: 1; /* solves it all for IE < 8, and doesn't hurt other browsers */
}
演示:jsFiddle,IE7 render with netrenderer
注意content: "\a0 ";
相當於
並代替的非空白字符(例如.
),以便當您選擇該塊並複製它時,可以執行而不是獲得額外的可見字符,否則會在某些瀏覽器中發生(例如IE9)。
這種解決方案的缺點是:
:before
和:after
定義,因此需要特別關注採取,如果他們使用。YUI, described in this article(但沒有
)使用了類似的解決方案。
有關'overflow:hidden'或'overflow:auto'的有趣之處在於裁剪內容是使用該屬性的全部要點......它解析浮動的事實是真正的副作用。 – BoltClock 2013-02-24 12:16:39
@BoltClock,邊緣和填充邊緣塌陷方面同樣有趣。 – Qtax 2013-02-27 01:37:48