為什麼這個 CSS margin-top 樣式不起作用?
P粉512729862
P粉512729862 2023-08-23 23:07:58
0
2
492
<p>我嘗試在另一個 <code>div</code> 內的 <code>div</code> 上新增 <code>margin</code> 值。除了最高值之外,所有工作都正常,它似乎被忽略了。但為什麼呢? </p> <p><strong>我的期望:</strong></p><p><br /></p> <p><strong>我得到了什麼:</strong></p><p><br /></p> <p><strong>代碼:</strong></p> <p><br /></p> <pre class="brush:css;toolbar:false;">#outer { width: 500px; height: 200px; background: #FFCCCC; margin: 50px auto 0 auto; display: block; } #inner { background: #FFCC33; margin: 50px 50px 50px 50px; padding: 10px; display: block; }</pre> <pre class="brush:html;toolbar:false;"><div id="outer"> <div id="inner"> Hello world! </div> </div></pre> <p><br /></p> <p>W3Schools 沒有解釋為什麼 <code>margin</code> 會出現這種情況。 </p>
P粉512729862
P粉512729862

全部回覆(2)
P粉141035089

嘗試在內部div上使用display: inline-block;。就像這樣:

#outer {
    width:500px; 
    height:200px; 
    background:#FFCCCC;
    margin:50px auto 0 auto;
    display:block;
}
#inner {
    background:#FFCC33;
    margin:50px 50px 50px 50px;
    padding:10px;
    display:inline-block;
}
P粉170438285

您實際上看到的是#inner 元素的上邊距折疊#outer元素的上緣,只保留#outer 邊距完好無損(儘管影像中未顯示) 。兩個盒子的頂部邊緣彼此齊平,因為它們的邊距相等。

以下是 W3C 規範中的相關要點:

您可以執行以下任一操作來防止邊距折疊:

#

上述選項防止邊距折疊的原因是:

左右邊距的表現符合您的預期,因為:

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板