2010-08-01 5 views
7

Ich habe ein Element, das zwei Span-Tags enthält, die jeweils etwas Text enthalten. Das Containerelement legt eine Schriftgröße fest, und die Schriftgröße für das zweite Span-Tag wird auf eine niedrigere Größe festgelegt. Wenn der zweite Bereich in der Schriftgröße reduziert wird, wird der Abstand zwischen der Linie und dem nächsten Blockelement vergrößert. Dies geschieht sowohl in WebKit als auch in Gecko.CSS: Warum erhöht die Reduzierung der Schriftgröße eines benachbarten Inline-Elements die Gesamtführung?

p Das Behälterelement weist { margin-bottom: 0; padding-bottom: 10px; } und seine Geschwister hat folgende { margin-top: -5px; }

Die folgende Abbildung zeigt die Situation, und enthält eine Momentaufnahme des relevanten Teils der Dokumentstruktur in FireBug.

alt text

Warum der Abstand unter dem p-Tag zu erhöhen, nachdem die Schriftgröße des zweiten span-Tages zu reduzieren?

Antwort

3

Meine Vermutung ist, dass Sie eine (relativ) große Zeilenhöhe von dieser Dezimalspanne geerbt haben (vielleicht 32px?), Und wenn Sie die Schriftgröße auf 18px reduzieren, erhalten Sie eine Situation, in der die Basislinie der Dezimalzeichen stimmen mit den nichtdezimalen Zeichen überein, aber die Zeile muss immer noch die gesamte angegebene Zeilenhöhe einnehmen. Daher wird zusätzlicher Speicherplatz unterhalb der Grundlinie hinzugefügt.

eine line-height Regel hinzufügen, und ich wette, das geht weg:

.box .value > .decimal { line-height: 18px; } 
+0

Vielen Dank für die Erklärung bieten! Beats blindlings versuchen, 'line-height' zu setzen und zu sehen, dass es hilft :) (Eine andere Sache, die fast funktionierte, war' vertical-align' zu ändern, aber es ist offensichtlich nicht bevorzugt, da Baselines nicht ausgerichtet sind. –

Verwandte Themen