Warum wird display: table-cell von Elementen in anderen Zellen beeinflusst?

8

Kann jemand in einer CSS-Tabelle mir verstehen helfen, warum ein geklammertes Element in der ersten Spalte ein div in der zweiten Spalte beeinflusst?

Hier ist ein Beispiel, wo ein Absatz Padding gesetzt hat. Das DIV in der rechten Spalte ist ebenfalls nicht korrekt aufgefüllt. Ich hatte ähnliche Probleme bei der Angabe der Zeilenhöhe für den Inhalt der linken Spalte, vereinfachte jedoch das Beispiel für diese Frage.

Ссылка

Es gibt viele ähnliche / verwandte Fragen zu Tabellenzellen, aber ich konnte keine finden, die diese Frage spezifisch behandelt.

    
Nick Pearce 10.10.2012, 22:37
quelle

3 Antworten

4

Dies ist höchstwahrscheinlich ein Problem mit der Zeilenhöhe und nicht mit dem Auffüllen. Das bedeutet, dass, obwohl Sie vermuten, kein Padding tatsächlich in Ihre rechte Spalte übertragen wird (der berechnete Wert ist immer noch Null). Ich würde es immer noch als Nebeneffekt bezeichnen, die Polsterung auf deinen p -Elementen anzupassen.

Die Auffüllung am oberen und unteren Rand der Elemente p drückt ihre Basislinie nach unten. Dies bewirkt, dass sich die Basislinie anderer "Zellen" in derselben Zeile / Zeile ebenfalls verschiebt. Natürlich können Sie alle Details finden, die in der Spezifikation beschrieben sind, aber da beide "Zellen" haben die gleiche vertikale Ausrichtung ( baseline ), sie müssen sich ausrichten, wenn eine verschoben ist.

    
BoltClock 12.10.2012, 19:41
quelle
9
___ qstnhdr ___ Warum wird display: table-cell von Elementen in anderen Zellen beeinflusst? ___ tag123css ___ CSS (Cascading Style Sheets) ist eine Darstellungsstilsprache, die das Aussehen und die Formatierung von HTML (Hyper Text Markup Language), XML-Dokumenten (Extensible Markup Language) und SVG-Elementen einschließlich (aber nicht beschränkt auf) Farben beschreibt. Layout, Schriftarten und Animationen. ___ tag123csstables ___ Verwenden Sie dieses Tag anstelle von nur [css] für Fragen zum Formatieren von HTML -Elementen mit CSS oder zum Verwenden der CSS display: table-Eigenschaftsdeklaration, um das Layout eines Elements so zu definieren, dass es einem HTML
entspricht. ___ answer32030095 ___

Ich habe einen Hack gefunden, der das "repariert", aber nicht weiß warum. Die erste Sache im vertical-align:top put %code% Klassenhack ist %code% Dies funktioniert, wenn es in die linke oder rechte Zelle gesetzt wird

    
___ qstntxt ___

Kann jemand in einer CSS-Tabelle mir verstehen helfen, warum ein geklammertes Element in der ersten Spalte ein div in der zweiten Spalte beeinflusst?

Hier ist ein Beispiel, wo ein Absatz Padding gesetzt hat. Das DIV in der rechten Spalte ist ebenfalls nicht korrekt aufgefüllt. Ich hatte ähnliche Probleme bei der Angabe der Zeilenhöhe für den Inhalt der linken Spalte, vereinfachte jedoch das Beispiel für diese Frage.

Ссылка

Es gibt viele ähnliche / verwandte Fragen zu Tabellenzellen, aber ich konnte keine finden, die diese Frage spezifisch behandelt.

    
___ answer12865973 ___

Dies ist höchstwahrscheinlich ein Problem mit der Zeilenhöhe und nicht mit dem Auffüllen. Das bedeutet, dass, obwohl Sie vermuten, kein Padding tatsächlich in Ihre rechte Spalte übertragen wird (der berechnete Wert ist immer noch Null). Ich würde es immer noch als Nebeneffekt bezeichnen, die Polsterung auf deinen %code% -Elementen anzupassen.

Die Auffüllung am oberen und unteren Rand der Elemente %code% drückt ihre Basislinie nach unten. Dies bewirkt, dass sich die Basislinie anderer "Zellen" in derselben Zeile / Zeile ebenfalls verschiebt. Natürlich können Sie alle Details finden, die in der Spezifikation beschrieben sind, aber da beide "Zellen" haben die gleiche vertikale Ausrichtung ( %code% ), sie müssen sich ausrichten, wenn eine verschoben ist.

    
___ antwort12887144 ___

Sie können wahrscheinlich die Eigenschaft vertical-align ( %code% ) für die Zellklasse oder div wie jsfiddle.net/j08691 verwenden / APXT7 / 4 . Da diese divs als Tabellenzellen angezeigt werden, ist dies möglicherweise das, wonach Sie suchen.

    
___
j08691 14.10.2012 22:23
quelle
1

Ich habe einen Hack gefunden, der das "repariert", aber nicht weiß warum. Die erste Sache im <div class='cell'> put <div class='hack'>&nbsp;</div> Klassenhack ist .hack { height: 0; } Dies funktioniert, wenn es in die linke oder rechte Zelle gesetzt wird

    
Joan_Buck 15.08.2015 22:41
quelle

Tags und Links