Warum beeinflusst das Setzen von Zeilenhöhe für eines von zwei Inline-Block-Geschwister-Divs beide Divs?

8

Ich habe folgendes:

%Vor%

Warum wirkt sich das Festlegen einer Eigenschaft "line-height" für das zweite div auch auf das erste div aus? Und wie ich dies korrigieren kann, brauche ich nur das zweite div, das durch die Zeilenhöhe beeinflusst werden soll, weil ich ein anderes line-height für das erste div angeben muss. Vielen Dank im Voraus.

UPDATE:

Überprüfen Sie jsFiddle.     
Babiker 21.03.2011, 03:03
quelle

3 Antworten

27

Mit dem Testfall ist es jetzt kristallklar.

Fügen Sie vertical-align: top zum ersten div hinzu:

%Vor%

Feste Version: Ссылка

Lesen Sie dies, um die Beziehung zwischen display: inline-block und vertical-align zu verstehen: Ссылка

Auch nützlich für eine visuelle Demonstration:
Ссылка

    
thirtydot 21.03.2011, 03:14
quelle
4

Erstens wirkt sich die Zeilenhöhe nur auf Inline-Elemente aus . Wenn line-height angewendet wird, um , Inline-Blöcke oder andere Arten von Elementen zu blockieren Dies ist nicht inline, die Effekte sind nur auf den Inline-Nachkommen -Elementen.

Zweitens sind in einer Line-Box (eine abstrakte Box, die Inline-Elemente in einer Linie einschließt) alle Inline-Elemente entlang der Grundlinie ausgerichtet. Wenn Sie die Zeilenhöhe für das zweite div ändern, fügt es am oberen (und unteren) Ende dieses Inline-Elements die Hälfte des Zeilenabstandes hinzu. Und die obere Hälfte führt die Basislinie tiefer, was wiederum das erste Div tiefer bewegt.

Ich bin mir nicht ganz sicher, was Sie erreichen wollen, aber ich würde empfehlen, entweder die Eigenschaft vertical-align zu verwenden oder einfach position relativ zu verwenden.

    
Vishal Gupta 01.02.2012 00:00
quelle
0
%Vor%

versuche das. das wird funktionieren.

    
Sujit Agarwal 21.03.2011 03:07
quelle

Tags und Links