1. 程式人生 > >子元素設定margin-top會作用在父元素上?如何解決呢

子元素設定margin-top會作用在父元素上?如何解決呢

在實戰中發現子級在父級中設定margin-top的時候,會失效,而會附加在父級上,相信大家也會遇到過這種情況,那這是怎麼回事呢?要如何解決呢?那麼我們看一下例子吧:

HTML程式碼:

<body>
   <div>
      <p></p>
   </div>
</body>

CSS程式碼:

*{margin:0;padding:0}
/*父元素*/
div{
     width:400px;
     height:400px;
     background-color:blue;
}
/*子元素*/
p{
     width
:200px; height:200px; background-color:orange; margin-top:40px; }

效果圖:
在這裡插入圖片描述
會發現子元素設定的margin-top作用與父容器上了,這其實是css外邊距合併產生的。

那麼解決方法如下:

1.給父容器box加overflow:hidden;屬性

2.父容器box加border除none以外的屬性

3.用父容器box的padding-top代替margin-top