Meine Frage ist im Grunde die gleiche wie diese, aber „line-height“ mit „Zeichenabstand“ ersetzen: When a relative line-height is inherited, it is not relative to the element's font-size. Why? And how do i make it relative?Ist es möglich, Buchstabenabstand relativ zur Schriftgröße zu haben und richtig zu erben?
Mein Anwendungsfall ist wie folgt:
body {
font-size: 18px;
letter-spacing: 1.2em; /* I would like letter-spacing to be relative to the font-size across the document, at least until I override it */
}
.small {
font-size: 14px;
/* letter-spacing is 1.2em of 18px instead of 14px */
}
Ich weiß, dass der Grund, Es funktioniert nicht, dass der berechnete Wert und nicht der angegebene Wert vererbt wird. Daher muss ich die letter-spacing
jedes Mal neu eingeben, wenn sich die font-size
ändert. Aber ich hoffe, dass es etwas Ähnliches gibt wie Unitless Werte in line-height
arbeiten.
Klar, ich kann dies tun:
* {
letter-spacing: 1.2em;
}
Aber dann kann ich nicht auf die Kaskaden an einem Element zu stoppen, wie ich in der Lage wäre, mit line-height
:
body {
font-size: 18px;
line-height: 1.5;
}
.normal-line-height {
line-height: normal;
/* all the descendants of this element will have a normal line-height */
}
Ich meine, SURE Ich könnte das immer tun ...
Aber es ist immer noch nicht so elegant, wie ich möchte. Ich denke nicht, dass es eine elegante Lösung für dieses Problem gibt, aber ich frage, ob ich etwas verpasse.
vielleicht Medienabfragen verwenden? – user3791775
@ user3791775 Ich versuche zu verstehen, wie Medienabfragen helfen können, dieses Problem zu lösen, und ich kann nicht. Kannst du bitte etwas ausarbeiten? – benface
Ich glaube nicht, dass es einen Weg gibt, das eleganter zu machen ... aber für so etwas Einfaches ist es nicht wirklich wichtig. Anstatt '*' [könnten Sie den Buchstabenabstand für jedes Element festlegen] (https://jsbin.com/tacebi/edit?html,css,output). Elegant? Nein. Praktisch? Ja. – misterManSam