Dieses Thema beschäftigt mich schon seit einiger Zeit sehr.
Im gesamten Web (und in CSS-Frameworks wie Bootstrap) REM
wird es häufig für alles verwendet, von Padding (Beispiel: padding: 2rem;
) bis Border-Radius (Beispiel: border-radius: 1rem;
).
Ok, gut, das ist vernünftig. Aber warum gibt es nicht auch eine globale Einheit, die einen line-height
Modifikator enthält? Angenommen, Sie verwenden ein typisches Raster, das auf Typografie basiert, Ihre Schriftskalierung PLUS Ihr Schriftabstand ist Ihre wahre Grundlinie, und daher scheint es eine weitaus wichtigere Einheit zu sein als nur einfach REM
.
Angenommen, Ihr REM
ist auf 16 Pixel eingestellt und Ihr Textkörper line-height
ist 1.6
.:
body {
font-size: 16px;
line-height: 1.6;
}
Dies ist eine relativ häufige Konfiguration. Warum wird also REM
(was 16px
in diesem Beispiel normalerweise so interpretiert wird) fast überall verwendet und nicht eine Einheit, die Ihre tatsächliche Rastergrundlinie darstellt (die normalerweise 25.6px
oder 16px * 1,6 ist)?
Mit anderen Worten, warum ist dies Standardpraxis?
my-padding: {
padding: 2rem; // typically will be 32px;
}
aber nicht dies
my-padding: {
padding: 2rlh; // typically will be 51.2px;
}
(Mir ist klar, dass rlh
, oder root line height
, in CSS nicht existiert. Meine Frage ist, warum existiert es nicht?).
Der Grund dafür ist, dass es zu spezifisch ist, um die Kosten zu rechtfertigen.
In Ihrem speziellen Fall, in dem Sie root verwenden möchten line-height
, lautet die Antwort auch, dass die meistens line-height
auf der basiert font-size
(standardmäßig), so dass es nutzlos wäre, da wir bereits rem
.
Allgemeiner können wir uns fragen: „Was ist, wenn ich die Wurzel als Abstand für den Rest meiner Ränder und Polsterung verwenden möchte margin-top
? Warum gibt es rmt
dafür keine Einheit?“ und tun dies für jede Eigenschaft. Wir sehen schnell, dass es dumm ist, Einheiten für jede Immobilie zu haben. em
und rem
wurden basierend auf ausgewählt, font-size
weil es eine gute Basis für andere Eigenschaften bietet, von denen aus gestylt werden kann.
Wenn Sie die Zeilenhöhe (oder einen anderen Wert) in den Werten anderer Eigenschaften verwenden möchten, können Sie entweder die benutzerdefinierten Eigenschaften von CSS (im Wesentlichen Variablen) oder einen CSS-Präprozessor wie SASS oder LESS verwenden.
Cai
dein Freundzak
REM
Zeilenhöhe gibt.Cai
line-height: 2rem;
dannpadding: 4rem;
ist das gleiche wie tunpadding: 2rlh;
Digitales Lightcraft
dein Freundzak
CSS
.dein Freundzak
EM
Eigentlich denke ich, dass ich Verwirrung stifte, weil meine Frage sowohl auf als auch zutreffen könnteREM
. Wenn ich die Auffüllung relativ zu einem übergeordneten Element festlegen möchtefont-size * line height
, gibt es dafür keine Einheit außer der harten Codierung der Werte.Cai
Cai
dein Freundzak
Jorik
DA01
DA01