In der Website-Quelle habe ich manchmal Entwickler gesehen, die das rem
Gerät verwenden. Ist es ähnlich em
? Ich habe es versucht, um zu sehen, was es tatsächlich tut, aber womit ist es relativ?
HTML
<div>Hello <p>World</p></div>
CSS
div {
font-size: 1.4rem;
}
div p {
font-size: 1.4rem;
}
Antworten:
EM
s sind relativ zur Schriftgröße ihrer ElternREM
s sind relativ zu einer BasisschriftgrößeDies ist wichtig, wenn Zwischencontainer die Schriftgröße ändern. Untergeordnete Elemente mit EMs sind betroffen, diejenigen, die REMs verwenden, nicht.
quelle
em
Einheiten sind relativ zur Schriftgröße des Elements, für das sie verwendet werden (nicht das übergeordnete Element) ] [W3C-Definition ] [Codepen-Demo ]Die Einheit
rem
(root em) steht für die Schriftgröße des root-Elements. In einem HTML-Dokument ist das Stammelement dashtml
Element. Die Browserunterstützung ist immer noch begrenzt.quelle
Während em relativ zur Schriftgröße des direkten oder nächsten übergeordneten Elements ist , ist rem nur relativ zur HTML-Schriftgröße (root).
em bietet die Möglichkeit, einen Bereich eines Designs zu steuern. Skalieren Sie wie in den Typ in diesem bestimmten Bereich relativ. rem bietet die Möglichkeit, den Typ einfach über die gesamte Seite zu skalieren.
quelle
Hier ist ein Beispiel.
divs
Größe mitrem
Änderung, wenn wirfont-size
dashtml
Element ändern . Während der mit Größeem
nur ändern , wie wir das ändernfont-size
derdiv
.quelle
Grundsätzlich ist em relativ zum nächsten übergeordneten Element in CSS, während rem relativ zum übergeordneten Element der Seite ist, bei der es sich normalerweise um das HTML-Tag handelt ...
Sie sehen den Unterschied deutlich, wenn Sie das folgende CSS ausführen und wie das übergeordnete Element es bewirkt:
quelle
Zusammenfassung:
rem
: EineCSS
Einheit, die relativ zur Schriftgröße deshtml
Elements ist.em
: EineCSS
Einheit, die relativ zur Schriftgröße des übergeordneten Elements ist.Beispiel:
Im obigen Beispiel ist das grüne Quadrat 160 x 160 Pixel groß (es sei denn, Sie haben keine Standardeinstellung für den Browser
16px
). Dies liegt daran , dass die Standard - Browser deshtml
Elementsfont-size
ist16px
und10rem
*16px
= 160.Das innere Quadrat ist
10em
groß. Da das übergeordnete Element5px
das Quadrat ist, ist es 5em *10px
=50px
.Wie ist das nützlich:
Durch Einstellen aller Einheiten auf
rem
die folgenden Vorteile:rem
entsprechend skaliert.16px
unserer Anwendung mit der ausgewählten Schriftgröße des Benutzers skaliert.quelle
rem, em und px sind unterschiedliche Einheiten der Schriftgröße in CSS.
em Ein em entspricht der berechneten Schriftgröße des übergeordneten Elements dieses Elements. Beispiel: div Element definiert mit Schriftgröße: 16px, seine untergeordneten Elemente 1em = 16px.
rem rem-Werte beziehen sich auf das HTML-Stammelement. Beispiel: Wenn die Schriftgröße des Stammelements 16 Pixel beträgt, ist 1 rem = 16 Pixel für alle Elemente.
Referenz: https://medium.com/code-better/css-units-for-font-size-px-em-rem-79f7e592bb97
quelle
https://stackoverflow.com/a/13941345/9093112 - es ist die beste Antwort, aber ich möchte nur hinzufügen
quelle
em und rem sind auf Schriftarten basierende relative Einheiten und es ist unterschiedlich, ems für Schriftarten oder für die Länge zu verwenden, sodass sowohl ems als auch rems auf Schriftarten basieren. Der Unterschied zwischen ihnen besteht jedoch darin, dass ems das übergeordnete oder das aktuelle Element als Referenz für rems verwenden Verwenden Sie die Root-Schriftgröße als Referenz.
Wenn wir ems für Schriftgrößen verwenden möchten, ist die Referenz einfach die von den Eltern berechnete Schriftgröße, ähnlich wie bei Prozentsätzen.
Im folgenden Beispiel ergibt eine Schriftgröße von drei Em im untergeordneten Header-Element 72 Pixel, einfach weil dies die dreifache übergeordnete Schriftgröße ist (150/100) * 16 = 24px. Nun zur Länge, es ist nur ein bisschen anders. Das 2em-Auffüllen in der Kopfzeile verwendet, da es sich um eine Längenmessung handelt, die Schriftgröße des aktuellen Elements als Referenz und wir wissen bereits, dass dies 24 Pixel sind. 2em führt also zu einem 48-Pixel-Auffüllen, verstanden? Es ist ein subtiler Unterschied, aber ein wichtiger. Wenn Sie em für Schriftarten verwenden, ist die Referenz das übergeordnete Element und für die Länge die Referenz das aktuelle Element.
In Bezug auf den Rem funktioniert es sowohl für Schriftgrößen als auch für Schriftlängen auf die gleiche Weise, da immer nur die Root-Schriftgröße als Referenz verwendet wird. Dies bedeutet, dass das 10-Rem-Padding, das wir hier haben, 160 Pixel ergibt, da die Root-Schriftgröße 16 beträgt.
quelle
In em relativen Einheit ist die Schriftgröße auf der Basis der gemessenen nächsten Mutterschriftgröße , aber wenn die Schriftgröße für keine der übergeordneten Elemente dann durch Standard - Schriftgröße wird definiert entsprechend der definiert ist root HTML - Element
Die rem relative Einheit wird nur vom Root-HTML-Element berechnet , daher hat die Schriftgröße des übergeordneten Elements keinen Einfluss darauf
quelle