中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解決外邊距margin疊加的方法教程

發布時間:2021-10-11 22:51:39 來源:億速云 閱讀:113 作者:iii 欄目:移動開發

這篇文章主要講解了“解決外邊距margin疊加的方法教程”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“解決外邊距margin疊加的方法教程”吧!

一、首先你要知道什么情況下會觸發:兩個或多個毗鄰的普通流中的塊元素垂直方向上的 margin 會折疊

1.兩個或多個
說明其數量必須是大于一個,又說明,折疊是元素與元素間相互的行為,不存在 A 和 B 折疊,B 沒有和 A 折疊的現象。

2.毗鄰
是指沒有被非空內容、padding、border 或 clear 分隔開,說明其位置關系。
注意一點,在沒有被分隔開的情況下,一個元素的 margin-top 會和它普通流中的第一個子元素(非浮動元素等)的 margin-top 相鄰; 只有在一個元素的 height 是 "auto" 的情況下,它的 margin-bottom 才會和它普通流中的最后一個子元素(非浮動元素等)的 margin-bottom 相鄰。

3.垂直方向
是指具體的方位,只有垂直方向的 margin 才會折疊,也就是說,水平方向的 margin 不會發生折疊的現象。

二、那么如何使元素上下margin不折疊呢?

1.浮動元素、inline-block 元素、絕對定位元素的 margin 不會和垂直方向上其他元素的 margin 折疊(注意這里指的是上下相鄰的元素)

2.創建了塊級格式化上下文的元素,不和它的子元素發生 margin 折疊(注意這里指的是創建了BFC的元素和它的子元素不會發生折疊)

我們都知道觸發BFC的因素是float(除了none)、overflow(除了visible)、display(table-cell/table-caption/inline-block)、position(除了static/relative)

很明顯大家可以看出來相鄰元素不發生折疊的因素是觸發BFC因素的子集,也就是說如果我為上下相鄰的元素設置了overflow:hidden,雖然觸發了BFC,但是上下元素的上下margin還是會發生折疊

這個問題其實和BFC并沒有太大的關系,希望大家不要濫用BFC,要知道BFC不是全能,創建BFC的初衷只是為了讓元素本身(包括它的子元素)能夠正確的計算自己的寬高。

不發生折疊的觸發因素是浮動元素、inline-block 元素、絕對定位元素,這個只是創建BFC因素的子集,但并不能說明創建了BFC的元素就不會發生折疊,因為BFC還可以用overflow:hidden來創建。相反如果父元素觸發了BFC,那么他的塊級子元素反而會發生折疊。

克軍提到的最后一個zoom,這是IE瀏覽器最初支持的縮放屬性,到現在只有最新的webkit核心的瀏覽器也支持。但只是在IE8以下的瀏覽器下才可成功觸發hasLayout,對于非IE瀏覽器也是沒有效果的,所以還是需要同樣的去創建BFC。

關于最終如何解決這樣的問題,我的建議是在寫的時候盡量用同一方向的margin,比如都設置為top或者bottom,因為你在實踐的時候有時不需要為每個元素設置浮動、inline-block或者absolute 。

感謝各位的閱讀,以上就是“解決外邊距margin疊加的方法教程”的內容了,經過本文的學習后,相信大家對解決外邊距margin疊加的方法教程這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临桂县| 元谋县| 宁晋县| 江华| 海门市| 眉山市| 信宜市| 大安市| 项城市| 三明市| 曲阜市| 灵宝市| 寿光市| 汾西县| 连南| 广东省| 平顺县| 全州县| 泸定县| 莱西市| 理塘县| 五原县| 象州县| 油尖旺区| 吐鲁番市| 镇宁| 上饶县| 高陵县| 基隆市| 阿瓦提县| 石家庄市| 时尚| 新平| 遵义县| 纳雍县| 永川市| 巩义市| 晋中市| 香格里拉县| 大姚县| 双鸭山市|