為什麼margin-top不是作用於父元素
至於margin-top屬性的基本用法再簡單不過,那就是設定一個物件的上外邊距,看下面的程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { margin:0px; padding:0px; } div { width:100px; height:100px; background-color:green; margin-top:50px; } </style> </head> <body> <div></div> </body> </html>
以上程式碼可以將div的上邊距設定為50px,一切執行良好,沒有任何問題,再來看下一段程式碼:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #parent { width:200px; height:200px; background-color:red; } #children { width:60px; height:60px; background-color:green; margin:0px auto; margin-top:50px; } </style> </head> <body> <div id="parent"> <div id="children"></div> </div> </body> </html>
以上程式碼的初衷是讓子元素的頂部距離父元素50px,但是事實上卻並沒有實現預期的效果,而是子元素頂部緊貼父元素,並且margin-top好像轉移給了父元素,讓父元素產生上外邊距。這其實是一個典型的外邊距合併問題,但是並非所有的瀏覽器都會產生這種情況,一般標準瀏覽器都會出現此現象,而IE6和IE7在此狀態下不會出現外邊距合併現象。上外邊距合併出現的條件:
1.父元素的上邊距與子元素的上邊距之間沒有border。
2.父元素的上邊距與子元素的上邊距之間沒有非空內容。
3.父元素的上邊距與子元素的上邊距之間沒有padding。
3.父元素和子元素中沒有設定定位屬性(除static和relative)、overflow(除visible)和display:inline-block等。
4.父元素或者資源都沒有浮動。
注意:以上條件必須都要滿足才可以。那麼解決此中情況的方式也很簡單,只要破壞上面的一種情況就可以了。
更多關於外邊距合併內容可以參閱margin外邊距合併詳解一章節。
相關文章
- 為什麼margin-top對父元素有效
- 子元素的margin-top作用於外層父元素解決方法
- 為什麼margin-top不起作用
- margin-top影響父元素定位
- 將子元素的margin-top傳遞給父元素
- 為什麼有時父元素無法包含子元素?
- margin-top失效傳遞給父元素解決方案
- 為什麼想做副業???還不是因為窮
- 為什麼選擇PostgreSQL而不是MySQLMySql
- 我看《App 為什麼不是未來?》APP
- 為什麼說區塊鏈也不是什麼好東西?區塊鏈
- 為什麼遊戲第一股不是鬥魚?遊戲
- 為什麼是“程式猿”而不是“程式媛”?
- 為什麼range不是迭代器?range到底是什麼型別?型別
- [python]為什麼父類的值沒有改變Python
- 為什麼軟體外包不再“起作用”了
- 居中為什麼用transform,而不是margin top/leftORM
- 為什麼DNS使用UDP而不是TCP詳解!DNSUDPTCP
- 什麼是塊元素?什麼是行內元素?
- js如何元素當前元素所有的父元素JS
- 事件溯源不是什麼?事件
- NGINX伺服器有什麼作用?什麼叫反向代理?為什麼要使用反向代理?Nginx伺服器
- 為什麼你應當選擇 PostgreSQL 而不是 Oracle?SQLOracle
- 為什麼 HTTP PATCH 方法不是冪等的及其延伸HTTP
- Python為什麼不是傳值或傳引用? - mathsppPython
- 為什麼ChatGPT採用SSE協議而不是Websocket?ChatGPT協議Web
- html 子元素div影響父元素高度HTML
- jquery 查詢某個元素的父元素jQuery
- JavaScript獲取父元素下子元素節點JavaScript
- 為什麼國內影視劇拍不好遊戲元素?遊戲
- 為什麼React元素有一個$$typeof屬性?React
- 為什麼 NaN 不等於自身?NaN
- CSS子元素居中(父元素寬高已知,子元素未知)CSS
- 分散式鎖為什麼要選擇Zookeeper而不是Redis?分散式Redis
- tabIndex屬性值為負數的作用是什麼Index
- css選擇器大於號>的作用是什麼CSS
- CSS單位em是相對於父元素還是當前元素的字型大小?CSS
- HTML元素是什麼?HTML