suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Warum funktioniert dieser CSS-Rand-Top-Stil nicht?

<p>Ich habe versucht, einen <code>margin</code>-Wert zu einem <code>div</code> hinzuzufügen. Bis auf den höchsten Wert, der scheinbar ignoriert wird, funktioniert alles einwandfrei. Aber warum? </p> <p><strong>Meine Erwartungen:</strong></p><p><br /></p> <p><strong>Was ich habe:</strong></p><p><br /></p> <p><strong>Code: </strong></p> <p><br /></p> <pre class="brush:css;toolbar:false;">#outer { Breite: 500px; Höhe: 200px; Hintergrund: #FFCCCC; Rand: 50px auto 0 auto; Bildschirmsperre; } #innere { Hintergrund: #FFCC33; Rand: 50px 50px 50px 50px; Polsterung: 10px; Bildschirmsperre; }</pre> <pre class="brush:html;toolbar:false;"><div id="outer"> <div id="inner"> Hallo Welt! </div> </div></pre> <p><br /></p> <p>W3Schools erklärt nicht, warum dies mit <code>margin</code> passiert. </p>
P粉512729862P粉512729862565 Tage vor505

Antworte allen(2)Ich werde antworten

  • P粉141035089

    P粉1410350892023-08-24 21:55:31

    尝试在内部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;
    }
    

    Antwort
    0
  • P粉170438285

    P粉1704382852023-08-24 21:55:02

    您实际上看到的是 #inner 元素的上边距 折叠#outer元素的上边缘,仅保留#outer边距完好无损(尽管图像中未显示) 。两个盒子的顶部边缘彼此齐平,因为它们的边距相等。

    以下是 W3C 规范中的相关要点:

    您可以执行以下任一操作来防止边距折叠:

    上述选项防止边距折叠的原因是:

    左右边距的表现符合您的预期,因为:

    Antwort
    0
  • StornierenAntwort