Die Diskrepanz aufdecken: Warum Margin-Top mit Inline-Block, aber nicht mit Inline funktioniert
Im Bereich des CSS-Stils das Zusammenspiel zwischen Anzeigeeigenschaften und Randverhalten können manchmal zu verwirrenden Szenarien führen. Ein solches Beispiel ist der seltsame Fall, dass margin-top mit inline-block, aber nicht mit inline arbeitet.
Bedenken Sie das folgende CSS-Snippet:
h1 { display: inline; margin-top: 25px; }
Bei Anwendung auf das
Um dieses Rätsel zu lösen, tauchen wir in die Tiefen der CSS2-Spezifikation ein. Gemäß Abschnitt 9.2.4 generieren Inline-Block-Elemente einen Blockcontainer auf Inline-Ebene und behandeln das Element im Wesentlichen als atomare Box auf Inline-Ebene. Im Gegensatz dazu generieren Inline-Elemente ein oder mehrere Inline-Boxen, wie in Abschnitt 9.2.4 angegeben.
Entscheidend ist, dass Abschnitt 9.4.2 der CSS2-Spezifikation klarstellt, dass Inline-Elemente nur horizontale Ränder berücksichtigen und vertikale Ränder außer Acht lassen. Elemente auf Blockebene hingegen respektieren sowohl horizontale als auch vertikale Ränder.
Daher ist die Diskrepanz zwischen Inline- und Inline-Block-Elementen auf das unterschiedliche Verhalten von Inline- und Blockelementen zurückzuführen. Inline-Elemente wie Inline berücksichtigen nur horizontale Ränder, da sie horizontal nacheinander angeordnet sind. Inline-Block-Elemente hingegen werden effektiv als Blöcke behandelt und zeigen das bekannte Verhalten von Block-Level-Elementen, einschließlich der Fähigkeit, vertikale Ränder wie „margin-top“ zu berücksichtigen.
Das obige ist der detaillierte Inhalt vonWarum funktioniert „margin-top' mit „inline-block', aber nicht mit „inline' in CSS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!