Warum CSS-Ränder und -Abstände relativ zur Breite berechnet werden
Im Bereich CSS gibt es eine interessante Besonderheit: Ränder und Abstände werden immer berechnet wird relativ zur Breite des enthaltenden Blocks berechnet. Diese rätselhafte Designentscheidung widerspricht intuitiven Erwartungen und wirft die Frage auf: Warum?
In der Spezifikation des CSS-Boxmodells heißt es: „Der [Margin]-Prozentsatz wird in Bezug auf die Breite des enthaltenden Blocks der generierten Box berechnet.“ Diese Inkonsistenz erstreckt sich auch auf „Rand oben“ und „Rand unten“, wodurch möglicherweise Layouts undefiniert werden, wenn die Breite des enthaltenden Blocks vom betreffenden Element abhängt.
Warum sollte dann ein solch unkonventioneller Ansatz gewählt werden? Obwohl es keine definitive Antwort gibt, deuten unbegründete Vermutungen darauf hin, dass der Schlüssel in der Bestimmung der Elementhöhe liegt.
Die Elementhöhe wird oft durch die Höhe ihrer untergeordneten Elemente definiert. Wenn ein übergeordnetes Element eine Polsterung oben hätte (relativ zur Höhe des übergeordneten Elements), hätte dies Auswirkungen auf die Gesamthöhe des übergeordneten Elements. Da jedoch die Größe des Kindes vom Elternteil abhängig ist, würde sich eine zirkuläre Abhängigkeit ergeben.
Dieses Abhängigkeitsproblem geht über den Fall der direkten Eingrenzung hinaus (versetztes Elternteil === Elternteil). Die Höhe des Blattelements (untergeordnetes Element ohne untergeordnete Elemente) wirkt sich auf alle darüber liegenden Elemente aus. Daher sorgt diese Designwahl für Konsistenz und verhindert mögliche Fehler bei der Höhenberechnung.
Das obige ist der detaillierte Inhalt vonWarum werden CSS-Ränder und -Abstände relativ zur Breite berechnet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!