子元素的margin-top会影响父元素
生活随笔
收集整理的這篇文章主要介紹了
子元素的margin-top会影响父元素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
---恢復內容開始---
之前在寫項目的時候,發現原本想讓父子元素之間加點邊距,卻讓父元素產生了margin-top,于是百度之后發現了原因。
在css2.1盒模型中
In this specification, the expression collapsing margins means that adjoining margins (no non-empty content, padding or border areas or clearance separate them) of two or more boxes (which may be next to one another or nested) combine to form a single margin. 所有毗鄰的兩個或更多盒元素的margin將會合并為一 個margin共享之。毗鄰的定義為:同級或者嵌套的盒元素,并且它們之間沒有非空內容、 Padding或Border分隔。父元素的子元素的上邊距margin-top如果碰不到有效的border或者padding,他們之前會共享(父元素會有margin-top)。所以會出如上的問題。同級的盒元素滿足上面的條件也會出現這個情況。
解決方案:
1.為父元素例子中的middle元素增加一個border-top或者padding-top即可解決這個問題
2.子元素使用浮動或者絕對定位absolute
3.父級overflow:hidden(共享的意思是margin-top看上去父子都有,但其實還是在子上,overflow讓子元素超出父元素部分隱藏即mrgin-top隱藏,但是達不到父元素與子元素分割開的效果,不推薦)
總結
以上是生活随笔為你收集整理的子元素的margin-top会影响父元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记《精通css》第2章 选择器,注释
- 下一篇: 16进制颜色识别和搭配规律