Was verursacht das Problem mit überlappenden Inhalten?
Wenn sich zwei Elemente in HTML/CSS überlappen, wird der Inhalt nicht immer vom Hintergrund des überlappenden Elements abgedeckt. Dies liegt an der spezifischen Malreihenfolge, die im CSS-Rendering-Modell angegeben ist.
CSS-Malreihenfolge
Die CSS-Malreihenfolge bestimmt die Reihenfolge, in der Elemente auf einer Webseite visuell gerendert werden. Es wird durch eine Reihe von Regeln definiert, die festlegen, welche Inhaltsebenen zuerst gemalt werden. Hier ist eine vereinfachte Übersicht:
-
Hintergrund des Root-Elements: Die Hintergrundfarbe des Root-Elements () deckt die gesamte Leinwand ab.
-
Hintergründe von untergeordneten Elementen: Wenn das untergeordnete Element ein Blockelement ist (z. B.
), dessen Hintergrundfarbe und Bild werden auf den Hintergrund des Stammelements gemalt und decken die gesamte Breite und Höhe des Elements ab.
-
Ränder: Die Ränder des untergeordneten Elements werden auf seinen Hintergrund gemalt.
-
Textinhalt: Abschließend wird der Textinhalt des untergeordneten Elements darüber gemalt Grenzen.
Problem im bereitgestellten Beispiel
Im angegebenen Beispiel haben wir zwei Elemente:
- .box: A
mit rotem Hintergrund.
- .unten: Ein weiterer
mit grünem Hintergrund und negativem Rand, wodurch es .box überlappt.
Gemäß der Malreihenfolge:
- Der weiße Hintergrund von wird zuerst gemalt und bedeckt die gesamte Seite.
- Als nächstes wird der rote Hintergrund von .box gemalt, und da es sich um ein Blockelement handelt, deckt er die gesamte Breite und Höhe des Elements ab.
- Der Der grüne Hintergrund von .bottom wird dann gemalt, aber aufgrund des negativen Randes gleitet er zwischen den Textinhalt von .box und dessen Hintergrund.
- Der Textinhalt beider Elemente steht an letzter Stelle gemalt werden.
Schlussfolgerung
Das beobachtete Verhalten ist ein Ergebnis der vordefinierten CSS-Malreihenfolge, die der Darstellung von Textinhalten Vorrang vor Hintergrundbildern oder Farben für überlappende Elemente einräumt.
Das obige ist der detaillierte Inhalt vonWarum verdecken überlappende HTML-Inhalte manchmal nicht den zugrunde liegenden Hintergrund?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors