Non riesco a capire la situazione quando questo intelligente insieme di regole può essere utile. Rompono la semplicità del modello di box e forniscono una fonte infinita di problemi quando si uniscono diversi pezzi di layout. Quindi qual è la ragione?Per quale motivo le regole di compressione del margine sono state introdotte nei CSS?
Rules per il riferimento.
Aggiornamento: le regole sono abbastanza logiche per gli elementi di pari livello, ma perché i margini dovrebbero propagarsi agli elementi padre fino all'albero? Che tipo di problemi risolve?
Ad esempio:
<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>
div di primo livello sono distanziati l'uno dall'altro da 100px.
A dire il vero, io preferirei la alternativa per la sua chiarezza. Anche se sono d'accordo in alcune situazioni, il crollo dei margini aiuta. –
Questo è abbastanza logico per gli elementi di pari livello. Ma non ho ancora idea del perché i margini degli elemnti infantili dovrebbero influenzare i margini dell'elemento genitore. – actual
@actual: la spaziatura tra l'elemento figlio e i limiti dell'elemento genitore deve essere la stessa indipendentemente dagli elementi circostanti. Gli elementi circostanti non possono introdurre la spaziatura tra i limiti dell'elemento genitore e dell'elemento figlio, in quanto ciò potrebbe modificare la dimensione dell'elemento genitore, quindi il margine deve anche allontanare l'elemento padre, non solo l'elemento figlio. – Guffa