Impossible de comprendre la situation lorsque cet ensemble intelligent de règles peut être utile. Ils cassent la simplicité du modèle de boîte et fournissent la source infinie de problèmes quand vous combinez différentes pièces de disposition ensemble. Alors, quelle est la raison?Pour quelle raison les règles de réduction de marge ont-elles été introduites dans CSS?
Rules pour la référence. Mise à jour: Les règles sont assez logiques pour les éléments frères, mais pourquoi les marges devraient se propager aux éléments parents jusqu'à l'arbre? Quel genre de problèmes cela résout?
Par exemple:
<div style="margin: 20px; background-color: red;">
<div style="margin: 20px;">
<p style="margin: 100px;">red</p>
</div>
</div>
<div style="margin: 20px; background-color: blue;">blue</div>
divs niveau haut sont espacées les unes des autres par 100px.
En fait, je préférerais la alternative pour sa clarté. Bien que je suis d'accord dans certaines situations, l'effondrement de la marge aide. –
C'est assez logique pour les éléments frères. Mais je n'ai toujours pas une idée de la raison pour laquelle les marges d'élimination des enfants devraient affecter les marges de l'élément parent. – actual
@actuel: L'espacement entre l'élément enfant et les limites de l'élément parent doit être le même, quels que soient les éléments environnants. Les éléments environnants ne peuvent pas introduire d'espace entre les limites de l'élément parent et de l'élément enfant, car cela pourrait modifier la taille de l'élément parent. La marge doit donc également repousser l'élément parent, pas seulement l'élément enfant. – Guffa