Heim > Artikel > Web-Frontend > Ist em in CSS relativ zum übergeordneten Element oder zur Größe des aktuellen Elements? (Codebeispiel)
Im Inhalt dieses Artikels geht es darum, ob em in CSS relativ zur Größe des übergeordneten Elements oder des aktuellen Elements ist. (Codebeispiel) hat einen gewissen Referenzwert. Freunde in Not können darauf verweisen.
em ist eine häufig verwendete relative Einheit in CSS, daher ist es notwendig, auf einige Fallstricke zu achten.
1em entspricht der Schriftgröße des aktuellen Elements, es sei denn, Sie legen die Schriftgröße fest
In vielen Artikeln heißt es, dass 1em der Schriftgröße des übergeordneten Elements entspricht! Diese Aussage ist tatsächlich ungenau. Schauen Sie sich das folgende Beispiel an:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> body { font-size: 16px; } div { font-size: 32px; padding-bottom: 2em; background-color: aquamarine; } </style> </head> <body> <div></div> </body> </html>
Warum denken manche Leute fälschlicherweise, dass 1em der Schriftgröße des übergeordneten Elements entspricht? Dies liegt daran, dass, wenn Sie beim Festlegen der Schriftgröße em-Einheiten verwenden, die Schriftgröße weiterhin den Standardwert erbt, sodass 1em immer noch der Schriftgröße des übergeordneten Elements entspricht. Dies ist nur beim Festlegen der Schriftgröße ein Sonderfall! Dieser Sonderfall ist leicht zu verstehen, schließlich stelle ich die Schriftgröße des aktuellen Elements ein! Wie können wir die aktuell eingestellte Schriftgröße als Einheit verwenden! Ist das nicht ein Paradoxon!
Wenn dieses Paradoxon beispielsweise tatsächlich auftritt, entsteht folgende Situation: Der Obstladenbesitzer sagt zu Ihnen: „Wie viele Kilogramm Orangen möchten Sie, ich verpacke sie für Sie“, aber Sie sagen zum Chef : „Die Menge, die ich möchte, ist doppelt so groß wie die Menge, die ich letztendlich möchte“ (ähnlich wie bei der Einstellung von „font-size: 2em“). Zu diesem Zeitpunkt wird der Obstladenbesitzer wahrscheinlich zusammenbrechen. Wie viele Orangen wird er für Sie verpacken?Mit Ausnahme dieses Sonderfalls entspricht 1em beim Festlegen anderer CSS-Eigenschaften der Schriftgröße des aktuellen Elements .
Im obigen Beispiel kann die Verwendung von em beim Festlegen von font-size
die Existenz dieses Sonderfalls beweisen:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> body { font-size: 16px; } div { font-size: 2em; /* 仅仅这一行改变了! */ padding-bottom: 2em; background-color: aquamarine; } </style> </head> <body> <div></div> </body> </html>
Die endgültige Höhe beträgt immer noch 64px, da beim Festlegen von „font-size“ 1em = ist = 16px; beim Festlegen von padding-bottom entspricht 1em 32px.
Was passiert, wenn Sie em als Schriftgröße für das Stammelement verwenden? Es hat kein übergeordnetes Element! Es spielt keine Rolle, für geerbte Eigenschaften (einschließlich Schriftgröße) ist der Standardwert für das Stammelement initial. Bei den meisten Browsern beträgt der Anfangswert für Schriftgröße 16 Pixel. Daher beträgt der Wert beim Festlegen der Schriftgröße für das Stammelement immer noch 16 Pixel und 1em entspricht 16 Pixel
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> html { /* 2*16px=32px */ font-size: 2em; } div { /* 2*32px=64px */ font-size: 2em; /* 2*64px=128px */ padding-bottom: 2em; background-color: aquamarine; } </style> </head> <body> <div></div> </body> </html>
Das obige ist der detaillierte Inhalt vonIst em in CSS relativ zum übergeordneten Element oder zur Größe des aktuellen Elements? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!