国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

IE7、IE8、ff下的margin-top問題 折疊margin

2024-07-11 08:47:12
字體:
來源:轉載
供稿:網友

而在以前用的時候,從不記得margin也需要不同的瀏覽器對其進行兼容設置。并且還是在不太支持web標準的IE7下面都可以,其他支持WEB標準的都出現問題。難道是web標準就是這樣,曾一度懷疑經常用的“盒子”方法是錯誤的。后來在網上找了一下才發現以前學習的時候竟然忽略了”折疊margin”。下面是“折疊margin”的一些介紹:

“collapsing margins”(折疊margin)的意思是:2個或以上盒模型之間(關系可以是相鄰或嵌套)相鄰的margin屬性(這之間不能有非空內容、padding區域、border邊框或使用清除分離方法)結合表示為一個單獨的margin。

在css2.1中,水平的margin不會被折疊。
垂直margin可能在一些盒模型中被折疊:
1、在常規文檔流中,2個或以上的塊級盒模型相鄰的垂直margin會被折疊。
最終的margin值計算方法如下:

a、全部都為正值,取最大者;

b、不全是正值,則都取絕對值,然后用正值減去最大值;

c、沒有正值,則都取絕對值,然后用0減去最大值。

注意:相鄰的盒模型可能由DOM元素動態產生并沒有相鄰或繼承關系。

2、相鄰的盒模型中,如果其中的一個是浮動的(floated),垂直margin不會被折疊,甚至一個浮動的盒模型和它的子元素之間也是這樣。
3、設置了overflow屬性的元素和它的子元素之間的margin不會被折疊(overflow取值為visible除外)。
4、設置了絕對定位(position:absolute)的盒模型,垂直margin不會被折疊,甚至和他們的子元素之間也是一樣
5、設置了display:inline-block的元素,垂直margin不會被折疊,甚至和他們的子元素之間也是一樣。
6、如果一個盒模型的上下margin相鄰,這時它的margin可能折疊覆蓋(collapse through)它。在這種情況下,元素的位置(position)取決于它的相鄰元素的margin是否被折疊。

a、如果元素的margin和它的父元素的margin-top折疊在一起,盒模型border-top的邊界定義和它的父元素相同。

b、另外,任意元素的父元素不參與margin的折疊,或者說只有父元素的margin-bottom是參與計算的。如果元素的border-top非零,那么元素的border-top邊界位置和原來一樣。

一個應用了清除操作的元素的margin-top絕不會和它的塊級父元素的margin-bottom折疊。

注意,那些已經被折疊覆蓋的元素的位置對其他已經被折疊的元素的位置沒有任何影響;只有在對這些元素的子元素定位時,border-top邊界位置才是必需的。

7、根元素的垂直margin不會被折疊。

浮動的塊級元素的margin-bottom總是與它后面的浮動塊級兄弟元素(floated next in-flow block-level sibling)的margin-top相鄰,除非那個同級元素使用了清除操作。

浮動的塊級元素的margin-top和它的第一個浮動塊級子元素(floated first in-flow block-level child)的margin-top相鄰(如果該元素沒有border-top,沒有padding-top,并且子元素沒有使用清除操作)。

浮動的塊級元素的margin-bottom如果符合下列條件,那么它和它的最后一個浮動塊級子元素的margin-bottom相鄰(如果該元素沒有指定padding-bottom或border):

a、指定了height:auto

b、min-height小于元素的實際使用高度(height)

c、max-height大于元素的實際使用高度(height)

如果一個元素的min-height屬性設置為0,那么它所擁有的margin是相鄰的,并且它既沒有border-top和border-bottom,也沒有padding-top和padding-bottom,它的height屬性可以是0或auto,它不能包含一個內聯的盒模型(line box),它所有的浮動子元素(如果有的話)的margin也都是相鄰的。

當一個元素擁有的margin折疊了,并且它使用了清除操作,那么它的margin-top會和緊隨其后的兄弟元素的相鄰margin折疊,但結果是它的margin將無法和其塊級父元素的margin-bottom折疊。

折疊操作是以padding、margin、border的值為基礎的(即在瀏覽器解析所有這些值之后),折疊后的margin計算將覆蓋已使用的不同margin的值。

如有不當之處還請幫助修正,謝謝!
原文地址:http://www.moonless.net/blog/2007/09/css21831collapsing-marginscollapsing.html
英文地址:http://www.w3.org/TR/CSS21/box.html#collapsing-margins

具體的代碼:

復制代碼
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀仁县| 彭泽县| 文安县| 扎鲁特旗| 阜新| 浙江省| 本溪市| 巴林左旗| 新野县| 阆中市| 英吉沙县| 北安市| 闻喜县| 安达市| 义马市| 文成县| 宜君县| 克山县| 田阳县| 祁阳县| 米林县| 文登市| 遵化市| 奈曼旗| 红原县| 叶城县| 泾源县| 阿巴嘎旗| 漯河市| 通河县| 南皮县| 图们市| 九江县| 鄄城县| 油尖旺区| 楚雄市| 广平县| 马边| 洛南县| 平陆县| 措勤县|