Mengapakah gaya atas margin CSS ini tidak berfungsi?
P粉512729862
2023-08-23 23:07:58
<p>Saya cuba menambah nilai <kod>margin</kod> pada <kod>div</kod> di dalam <kod>div</kod> Semuanya berfungsi dengan baik kecuali nilai tertinggi, yang nampaknya diabaikan. Tapi kenapa? </p>
<p><strong>Jangkaan saya:</strong></p><p><br /></p>
<p><strong>Apa yang saya dapat:</strong></p><p><br /></p>
<p><strong>Kod: </strong></p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">#outer {
lebar: 500px;
ketinggian: 200px;
latar belakang: #FFCCCC;
jidar: 50px auto 0 auto;
paparan: blok;
}
#dalaman {
latar belakang: #FFCC33;
jidar: 50px 50px 50px 50px;
padding: 10px;
paparan: blok;
}</pre>
<pre class="brush:html;toolbar:false;"><div id="outer">
<div id="inner">
Hai dunia!
</div>
</div></pre>
<p><br /></p>
<p>W3Schools tidak menjelaskan mengapa ini berlaku dengan <code>margin</code>. </p>
Cuba dalam
div
上使用display: inline-block;
. Seperti ini:Apa yang anda lihat sebenarnya ialah
#inner
元素的上边距 折叠到#outer
元素的上边缘,仅保留#outer
margin adalah utuh (walaupun tidak ditunjukkan dalam imej). Tepi atas kedua-dua kotak adalah siram antara satu sama lain kerana jidarnya adalah sama.Berikut adalah perkara yang berkaitan daripada spesifikasi W3C:
Anda boleh melakukan mana-mana perkara berikut untuk mengelakkan margin daripada runtuh:
Pilihan di atas menghalang margin daripada runtuh kerana:
Biping kiri dan kanan berkelakuan seperti yang anda jangkakan kerana: