Heim Web-Frontend CSS-Tutorial Ist em in CSS relativ zum übergeordneten Element oder zur Größe des aktuellen Elements? (Codebeispiel)

Ist em in CSS relativ zum übergeordneten Element oder zur Größe des aktuellen Elements? (Codebeispiel)

Oct 24, 2018 pm 04:58 PM

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>
Nach dem Login kopieren

wird durch padding-bottom gestreckt und die Höhe von padding-bottom beträgt 64px, nicht 32px! Dies beweist, dass 1em der Schriftgröße des aktuellen Elements entspricht (mit einer Ausnahme, die weiter unten erläutert wird).

Welche Beziehung besteht zwischen Schriftgröße und -länge? Ist die Schriftart nicht ein Quadrat? Tatsächlich ist die Schriftgröße als die Breite von M definiert.

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?
Um dies zu vermeiden, wenn Sie bei der Mengenangabe relative Einheiten verwenden, darf die Einheit nicht relativ zu der Menge sein, die Sie gerade angeben. Sie können Ihrem Chef sagen: „Die Menge, die ich möchte, ist doppelt so groß wie die Menge, die der letzte Kunde gekauft hat“ (ähnlich wie bei der Einstellung „font-size: 2em“). Nachdem Sie die Orangen gekauft haben, können Sie dem Chef sagen: „Ich möchte noch mehr Äpfel, doppelt so viele wie die Orangen, die ich gerade gekauft habe“ (ähnlich wie bei der Einstellung padding-bottom: 2em).

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Es ist aus! Herzlichen Glückwunsch an das Vue -Team, dass es eine massive Anstrengung war und lange kommt. Alle neuen Dokumente auch.

Aufbau einer Ethereum -App mit Redwood.js und Fauna Aufbau einer Ethereum -App mit Redwood.js und Fauna Mar 28, 2025 am 09:18 AM

Mit dem jüngsten Aufstieg von Bitcoins Preis über 20.000 USD und kürzlich von 30.000, dachte ich, es lohnt

Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Apr 02, 2025 pm 06:17 PM

Ich ließ jemanden mit dieser sehr legitimen Frage einschreiben. Lea hat gerade darüber gebloggt, wie Sie gültige CSS -Eigenschaften selbst aus dem Browser erhalten können. Das ist so.

Ein bisschen auf CI/CD Ein bisschen auf CI/CD Apr 02, 2025 pm 06:21 PM

Ich sage "Website" passt besser als "Mobile App", aber ich mag dieses Rahmen von Max Lynch:

Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Apr 03, 2025 am 10:30 AM

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Apr 02, 2025 am 04:27 AM

Wenn wir dem Benutzer direkt im WordPress -Editor Dokumentation anzeigen müssen, wie können Sie dies am besten tun?

Vergleich von Browsern für reaktionsschnelles Design Vergleich von Browsern für reaktionsschnelles Design Apr 02, 2025 pm 06:25 PM

Es gibt eine Reihe dieser Desktop -Apps, in denen das Ziel Ihre Website gleichzeitig in verschiedenen Dimensionen angezeigt wird. So können Sie zum Beispiel schreiben

Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Apr 05, 2025 pm 05:51 PM

Fragen zu lila Schrägstrichen in Flex -Layouts Bei der Verwendung von Flex -Layouts können Sie auf einige verwirrende Phänomene stoßen, wie beispielsweise in den Entwicklerwerkzeugen (D ...

See all articles