recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi ce style CSS de marge supérieure ne fonctionne-t-il pas ?

<p>J'ai essayé d'ajouter une valeur <code>margin</code> sur un <code>div</code> Tout fonctionne bien sauf la valeur la plus élevée, qui semble ignorée. Mais pourquoi? </p> <p><strong>Mes attentes :</strong></p><p><br /></p> <p><strong>Ce que j'ai obtenu :</strong></p><p><br /></p> <p><strong>Code : </strong></p> <p><br /></p> <pre class="brush:css;toolbar:false;">#outer { largeur : 500 px ; hauteur : 200px ; contexte : #FFCCCC ; marge : 50px auto 0 auto ; bloc de visualisation; } #intérieur { arrière-plan : #FFCC33 ; marge : 50px 50px 50px 50px ; remplissage : 10 px ; bloc de visualisation; }</pré> <pre class="brush:html;toolbar:false;"><div id="outer"> <div id="intérieur"> Bonjour le monde! </div> </div></pre> <p><br /></p> <p>W3Schools n'explique pas pourquoi cela se produit avec <code>margin</code>. </p>
P粉512729862P粉512729862504 Il y a quelques jours477

répondre à tous(2)je répondrai

  • P粉141035089

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

    Essayez-le à l'intérieurdiv上使用display: inline-block;. Comme ça :

    #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;
    }
    

    répondre
    0
  • P粉170438285

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

    Ce que vous voyez réellement, c'est que les #inner 元素的上边距 折叠#outer元素的上边缘,仅保留#outermarges sont intactes (bien qu'elles ne soient pas montrées dans l'image). Les bords supérieurs des deux cases sont alignés car leurs marges sont égales.

    Voici les points pertinents de la spécification W3C :

    Vous pouvez effectuer l'une des opérations suivantes pour éviter que les marges ne s'effondrent :

    Les options ci-dessus empêchent les marges de s'effondrer car :

    Les marges gauche et droite se comportent comme prévu car :

    répondre
    0
  • Annulerrépondre