Warum wird meine Hintergrundfarbe nicht angezeigt, wenn ich Display habe: Inline?

8
%Vor%

Hier ist mein Code. Ich wundere mich, warum meine Hintergrundfarbe nicht zeigt. Wenn ich CSS-Anzeige von Inline zu Block ändern, dann wird es angezeigt. Warum wird es nicht angezeigt, wenn die Anzeige inline ist? Ich versuche den Grund des Problems zu verstehen, außer nach einer Lösung zu suchen.

    
user926958 16.09.2011, 03:28
quelle

6 Antworten

8

Das div nimmt keinen Platz in Anspruch, wenn es inline ist. Wenn Sie ein Inline-Element haben möchten, das als Kinderhöhe angezeigt wird, verwenden Sie display: inline-block; .

Was eine gute Diskussion angeht, würde ich QuirksMode besser annehmen als meine eigenen. Das Wesentliche ist, dass ein inline -Element andere Elemente nicht aus dem Weg räumt.

    
fncomp 16.09.2011, 03:35
quelle
2

Das Problem ist, dass Sie eine H3 , eine blocking element innerhalb der inline element haben.

Sie können sehen, was passiert mit:

%Vor%

oder machen Sie H3 inline:

%Vor%     
Joe 16.09.2011 03:39
quelle
0

Wenn Sie versuchen, einen Highlighter-Effekt zu erstellen, verwenden Sie stattdessen die folgende Option:

%Vor%     
Reina 16.09.2011 03:39
quelle
0

div ist standardmäßig ein Blockelement. Das Ändern des Anzeigemodells eines Blockelements in Inline ist keine gute Vorgehensweise. Überschriften sind auch Blockelemente. Das Verschachteln eines Blockelements in ein Inline-Element ist kein gültiger HTML-Code. Wenn Sie einen markierungsähnlichen Effekt wünschen (Hintergrundfarbe nur für Text, nicht für ganzes Element), müssen Sie ein Inline-Element wie span verwenden.

%Vor%     
Mohsen 16.09.2011 03:55
quelle
0

einfache Lösung, in einigen Fällen ist es am besten, dem Inline-div, das die Überschrift enthält, eine Auffüllung hinzuzufügen

%Vor%     
Fahad 16.09.2011 07:38
quelle
0

Die neueste Überarbeitung von CSS2.1 sagt dazu Folgendes Wichtig:

  

Wenn eine Inline-Box eine In-Flow-Box auf Blockebene enthält, wird die Inline-Box angezeigt   (und seine Inline-Vorfahren in der gleichen Zeile Box) sind herumgebrochen   die Box auf Blockebene (und alle Geschwister auf Blockebene, die fortlaufend sind   oder nur durch kollabierbare Leerräume und / oder außerhalb des Flusses getrennt   Elemente), wobei die Inline - Box in zwei Boxen aufgeteilt wird (auch wenn   Seite ist leer), eine auf jeder Seite der Block-Level-Box (en). Die Linie   Boxen vor der Pause und nach der Pause sind in anonymer Form eingeschlossen   Block-Boxen, und die Block-Level-Box wird ein Geschwister von denen   anonyme Boxen. Wenn eine solche Inline-Box von relativ betroffen ist   Positionierung wirkt sich jede resultierende Übersetzung auch auf die Blockebene aus   Box in der Inline-Box enthalten.

Mit anderen Worten, aus der Sicht des Layouts bildet die Inline-Kombination div und h3 eine Inline-Box, eine Blockbox und eine weitere Inline-Box. Nur die zwei Inline-Boxen nehmen die Formatierung (dh die Hintergrundfarbe) und die Blockbox bildet keinen Teil der vom div definierten Inline-Box und nimmt daher ihre Standard-Hintergrundfarbe (die transparent ist und durch den Hintergrund zeigt) Farbe der enthaltenen Block-Box).

    
Alohci 16.09.2011 07:59
quelle

Tags und Links