Inhaltsverzeichnis
Isolieren eines Div aus öffentlichen CSS-Stilen
Problem
Lösung
Alternativer Ansatz
Browser-Unterstützung
Heim Web-Frontend CSS-Tutorial Wie können Sie einen „div'-Container von öffentlichen CSS-Stilen isolieren und verhindern, dass seine untergeordneten Elemente globale Stile erben?

Wie können Sie einen „div'-Container von öffentlichen CSS-Stilen isolieren und verhindern, dass seine untergeordneten Elemente globale Stile erben?

Oct 26, 2024 am 04:19 AM

How can you isolate a `div` container from public CSS styles and prevent its children from inheriting global styles?

Isolieren eines Div aus öffentlichen CSS-Stilen

Problem

Betrachten Sie den folgenden HTML-Code:

1

2

3

4

<code class="html">&lt;div id=&quot;mydiv&quot;&gt;

  &lt;img src=&quot;an image source&quot; /&gt;

  &lt;h1&gt;Hi it's test&lt;/h1&gt;

&lt;/div&gt;</code>

Nach dem Login kopieren

Anwenden des Folgenden CSS-Stylesheet:

1

2

3

4

5

6

7

8

<code class="css">img {

  width: 100px;

  height: 100px;

}

h1 {

  font-size: 26px;

  color: red;

}</code>

Nach dem Login kopieren

Es stellt sich die Frage: Wie können wir verhindern, dass das für alle <img> und <h1> Tags davon abhalten, die Elemente im #mydiv-Container zu beeinflussen?

Lösung

Um die Elemente in #mydiv von den globalen CSS-Stilen zu isolieren, können wir die Abkürzungseigenschaft „all“ und das in eingeführte Schlüsselwort „unset“ nutzen CSS-Kaskadierung und Vererbungsebene 3.

Indem wir all: initial auf #mydiv setzen, blockieren wir die Vererbung für alle Eigenschaften und setzen sie auf ihre Standardwerte zurück. Dies verhindert, dass die globalen Stile in den Container kaskadieren.

Um die Vererbung innerhalb von #mydiv zu ermöglichen, können wir all:unset für seine Nachkommen festlegen. Auf diese Weise ermöglichen wir, dass die im Container definierten Regeln ohne Beeinträchtigung durch externe Stile wirksam werden.

Hier ist der überarbeitete CSS-Code:

1

2

3

4

5

6

<code class="css">#mydiv {

  all: initial;

}

#mydiv * {

  all: unset;

}</code>

Nach dem Login kopieren

Es ist wichtig zu beachten, dass diese Technik gilt für alle möglichen CSS-Eigenschaften, einschließlich der vom Hersteller vorgegebenen Eigenschaften. Um eine umfassende Browserunterstützung sicherzustellen, wird empfohlen, auch auf Pseudoelemente abzuzielen:

1

2

3

4

5

6

<code class="css">#mydiv::before,

#mydiv::after,

#mydiv *::before,

#mydiv *::after {

  all: unset;

}</code>

Nach dem Login kopieren

Alternativer Ansatz

Alternativ können Sie für eine breitere Browserkompatibilität jede CSS-Eigenschaft manuell auf ihren Anfangspunkt setzen Wert auf #mydiv und auf seine Nachkommen erben, wie im folgenden Code zu sehen:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<code class="css">#mydiv {

  align-content: initial;

  align-items: initial;

  align-self: initial;

  ...

 

  color: inherit;

  ...

}

 

#mydiv::before,

#mydiv::after,

#mydiv *,

#mydiv *::before,

#mydiv *::after {

  align-content: initial;

  align-items: initial;

  align-self: initial;

  ...

 

  color: inherit;

  ...

}</code>

Nach dem Login kopieren

Browser-Unterstützung

Die All-Shorthand-Eigenschaft wird in den folgenden Browsern unterstützt:

  • Chrome 37
  • Firefox 27
  • Safari 9.1
  • Edge 79
  • Opera 24

Für bis - Aktuelle Informationen zur Browser-Unterstützung finden Sie in der offiziellen Dokumentation.

Das obige ist der detaillierte Inhalt vonWie können Sie einen „div'-Container von öffentlichen CSS-Stilen isolieren und verhindern, dass seine untergeordneten Elemente globale Stile erben?. 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 Artikel -Tags

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)

Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms Framework Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms Framework Mar 07, 2025 am 11:33 AM

Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms Framework

Hinzufügen von Kastenschatten zu WordPress -Blöcken und -Elementen Hinzufügen von Kastenschatten zu WordPress -Blöcken und -Elementen Mar 09, 2025 pm 12:53 PM

Hinzufügen von Kastenschatten zu WordPress -Blöcken und -Elementen

Machen Sie Ihren ersten Seltsamen -Sufle -Übergang Machen Sie Ihren ersten Seltsamen -Sufle -Übergang Mar 15, 2025 am 11:08 AM

Machen Sie Ihren ersten Seltsamen -Sufle -Übergang

Arbeiten mit GraphQL Caching Arbeiten mit GraphQL Caching Mar 19, 2025 am 09:36 AM

Arbeiten mit GraphQL Caching

Entmystifizierende Bildschirmleser: Zugrunde Formen und Best Practices Entmystifizierende Bildschirmleser: Zugrunde Formen und Best Practices Mar 08, 2025 am 09:45 AM

Entmystifizierende Bildschirmleser: Zugrunde Formen und Best Practices

Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte) Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte) Mar 04, 2025 am 10:22 AM

Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte)

Show, Don ' Tell Show, Don ' Tell Mar 16, 2025 am 11:49 AM

Show, Don ' Tell

Was zum Teufel haben NPM -Befehle? Was zum Teufel haben NPM -Befehle? Mar 15, 2025 am 11:36 AM

Was zum Teufel haben NPM -Befehle?

See all articles