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

首頁 > 開發 > CSS > 正文

margin-top塌陷問題的現象與解決的具體方法

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

什么是margin-top塌陷

margin-top塌陷是在CSS的盒子模型中出現的一種現象,描述的是當父元素包裹著一個子元素的時候,當給子元素設置margin-top屬性時,此時只是想讓子元素的邊框距離父元素邊框有一段距離,而卻出現了父元素的頂端距離body這個邊框出現了位移,這就是margin-top塌陷的現象。

在未給子元素(綠色部分)添加margin-top屬性的時候,網頁如下圖顯示:

但是當給子元素加上margin-top屬性的時候網頁顯示就變成了如下圖所示:

你會發現,子元素的邊界與父元素(黃色部分)的邊界距離并沒有增大,反而是父元素的上邊界與瀏覽器上邊界的距離增大了,也就是父元素帶著子元素一起下移了一段距離,經過檢查,這段距離也正好等于我們給子元素設置的margin-top的屬性值,這就是margin-top塌陷的現象。

怎么解決margin-top塌陷

對于margin-top的塌陷問題,可以從以下幾點去解決,親測有效:

1.給父元素增加邊框

為了不影響原先的圖像效果,可以將邊框顏色設置為白色(與瀏覽器背景顏色一致)

2.溢出隱藏

在父元素的style里面添加overflow:hidden;

3.利用浮動

給父元素的style添加浮動,但是這種方法不推薦使用。因為會帶來未知的錯誤

4.給父元素添加position:fixed;

這里用到了定位的知識,將父元素顯示在固定位置,就不會受margin-top塌陷的問題影響

5.給父元素設置display:table;

6.使用偽元素

偽元素之所以被稱為偽元素,就是因為他們不是真正的頁面元素,html沒有與之對應的元素,但是其用法和表現行為和真正的元素一樣,所以被成為偽元素。

.clearfix::before{ content: ”; display: table; }

.clearfix 是給父元素增加的另外一個類名,這是我們推薦的解決辦法,既能解決margin-top塌陷問題,又不會出現其他附加的未知錯誤。

確定了解決方案以后,現在來看看最終的結果,如下圖:

可以看見,現在的位置是子元素相對于父元素在移動,而不會對父元素的位置造成什么影響了。

下面附上調試代碼:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>10-margin-top塌陷</title> <style> .clearfix::before{ content: ''; display: table; } .box{ width: 200px; height: 200px; background-color: gold; margin:0px auto; } .con{ width: 100px; height: 50px; background-color: green; margin-top: 100px; } </style></head><body> <div class="box clearfix"> <div class="con"></div> </div></body></html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭觉县| 鹤壁市| 翼城县| 清徐县| 西平县| 三原县| 图们市| 贵南县| 沁源县| 玛多县| 教育| 深圳市| 曲松县| 乐昌市| 永年县| 保康县| 体育| 营山县| 泰和县| 大姚县| 巴彦淖尔市| 威信县| 邵阳县| 乐山市| 大同市| 邢台县| 施甸县| 新田县| 龙陵县| 滕州市| 朝阳区| 永善县| 海伦市| 玛多县| 阿拉善右旗| 浮山县| 景东| 宁夏| 洪雅县| 黑水县| 正安县|