Verstehen Sie die Verwendung des All-Attributs von CSS3

Verstehen Sie die Verwendung des All-Attributs von CSS3

1. Kompatibilität

Wie unten dargestellt:

Die Kompatibilität ist ok. Bis auf den IE sind alle anderen Browser grundsätzlich grün. Ich kann ihn für meine eigenen Unterhaltungs- und Intranetprojekte verwenden.

2. Wofür wird das alles verwendet?

Das Attribut „all“ ist eigentlich eine Abkürzung für „all CSS Properties“, was bedeutet, dass alle CSS-Eigenschaften so oder so sind, außer dass die beiden CSS-Eigenschaften „unicode-bidi“ und „direction“ nicht dazugehören.

Warum existiert diese CSS-Eigenschaft?

Wir wissen möglicherweise, dass einige CSS-Eigenschaftswerte grundsätzlich allen CSS-Eigenschaften gemeinsam sind, beispielsweise die Vererbung!

Wenn wir das CSS-Eingabefeld zum Zurücksetzen verwenden, gibt es Code ähnlich diesem (es kann sich tatsächlich um einen bestimmten Wert mit ähnlicher Wirkung handeln):

Eingabe, Textbereich {
    Farbe: erben;
    Schriftgröße: erben;
    Schriftfamilie: erben;
}

Da diese Art von Eingabesteuerung über eine eigene integrierte Größe und Schriftart verfügt, muss sie zurückgesetzt werden.

An diesem Punkt werden Sie feststellen, dass diese Attributwerte alle vererbt werden. Es wäre großartig, wenn sie zusammengeführt werden könnten!

Zum Zusammenführen wird die CSS-Eigenschaft „all“ verwendet.

Eingabe, Textbereich { 
   alle: erben; 
}

Dies dient nur zu Demonstrationszwecken. Es wird eigentlich nicht auf diese Weise verwendet, da all:inherit die Hintergrundfarbe und andere Dinge vom übergeordneten Element erbt, was meiner Meinung nach nicht das ist, was Sie sehen möchten.

3. Grammatik und Unterscheidung

Die Syntax lautet wie folgt:

alle: Initiale;
alle: erben;
alle: nicht gesetzt;

/* CSS4-Funktionen, ignorieren */
alle: zurücksetzen;

Das Standard-HTML und -CSS sieht folgendermaßen aus, ein herkömmlicher Tag-Inhalt mit einem Titel und einer Liste:

<Artikel>
    <h6>Titel</h6>
    <p>p Änderungen am Text</p>
    <ol>
        <li>Sortierte Liste 1</li>
        <li>Sortierte Liste 2</li>
        <li>Sortierte Liste 3</li>
    </ol>
    <textarea>Textbereich</textarea>
</Artikel>
Artikel {
    Hintergrundfarbe: #f0f3f9;
    Farbe: grün;
}
Artikel > Textbereich {
    Rand: 1px durchgezogen #34538b;
    Hintergrundfarbe: #ffffe0;
    Farbe: rot;
}

Wie Sie sehen können:

Die Farben, Abstände und der Status der Textfelder entsprechen unserer Meinung nach dem richtigen Aussehen.

Klicken Sie nun auf das Dropdown-Menü „Demo“ und wählen Sie den entsprechenden Attributwert aus, um den folgenden CSS-Effekt zu erzielen:

.initial > * {
    alle: Initiale;
}
.erben > * {
    alle: erben;
}
.unset > * {
    alle: nicht gesetzt;
}

Ergebnis:

Initial bedeutet der Anfangswert, d. h. alle untergeordneten Elemente der ersten Ebene unter dem Artikelelement verwenden den Anfangswert von CSS mit Ausnahme von Unicode-Bidi und Richtung.

Beispielsweise verfügen die Elemente <h6> und <p> nicht über die integrierte display:block-Funktion im Browser und sind nun Inline-Elemente, d. h. sie werden in einer Zeile angezeigt:

Die Schriftgröße verwendet ebenfalls die von der Browsersoftware selbst festgelegte Größe von 16 Pixeln und die Farbe ist ebenfalls Schwarz, was die Standardeinstellung der Browsersoftware selbst ist. Ändern Sie beispielsweise die Schriftgröße in Ihren Browsereinstellungen von mittel auf groß:

Sie werden feststellen, dass auch der angezeigte Textinhalt größer geworden ist:

Da wir nur anfängliche Einstellungen für die untergeordneten Elemente der benachbarten Ebene vorgenommen haben, ist das <li>-Element nicht betroffen. Da jedoch die Standardeinstellung für das <li>-Element Punkte ist, wenn das übergeordnete Element unbekannt ist, werden die Zahlen hier in Punkte geändert und sowohl der Listenstiltyp als auch die Listenstilposition werden geändert.

„Inherit“ bedeutet Vererbung, d. h. alle angrenzenden untergeordneten Elemente unter dem Artikelelement erben das CSS des <article>-Elements mit Ausnahme von Unicode-Bidi und Richtung.

Daher sind die Elemente <h6> und <p> immer noch blockförmig, die Hintergrundfarbe ist die Hintergrundfarbe des Elements <article> und die Farbe ist dieselbe wie bei <article>, nämlich grün (die rote Farbe des Textbereichs wird entfernt).

Nicht nur das obige CSS, sondern auch Padding/Margin werden übernommen, aber der Standardwert ist 0, was nicht offensichtlich ist. Lassen Sie uns dies leicht ändern, indem wir beispielsweise dem Element <article> einen Margin-Wert zuweisen:

Als Ergebnis blühten alle diese untergeordneten Elemente auf:

nicht gesetzt

Unset bedeutet, die Einstellung aufzuheben, d. h. alle CSS der angrenzenden untergeordneten Elemente unter dem Artikelelement außer Unicode-Bidi und Richtung werden entfernt. Was sollten wir verwenden, wenn wir sie nicht möchten? Die Eigenschaften des nicht festgelegten Werts sind wie folgt: Das vom aktuellen Elementbrowser oder Benutzer festgelegte CSS wird ignoriert, und wenn es sich um ein CSS mit geerbten Eigenschaften wie Farbe handelt, wird der geerbte Wert verwendet. Wenn es sich um eine CSS-Eigenschaft ohne geerbte Eigenschaften wie Hintergrundfarbe handelt, wird der Anfangswert verwendet.

Daher verwendet der Anzeigeattributwert der Elemente <h6> und <p> den Anfangswert, sodass sie zu Inline-Elementen werden und in derselben Zeile angezeigt werden. Die Farbe dieser Elemente verwendet den Vererbungswert, sodass sie alle grün sind. Die Hintergrundfarbe von <textarea> verfügt nicht über die Vererbungsfunktion, daher wird der Anfangswert verwendet, d. h. transparent. Daher ist der Effekt im Screenshot dargestellt.

endlich

Dabei ist so viel CSS involviert, dass mir immer noch kein Szenario einfällt, in dem ich diese CSS-Eigenschaft verwenden müsste. Oder wenn Sie möchten, dass ein spezielles Element plötzlich zu einem normalen Element wird, z. B. ein Div außerhalb eines Eingabefelds und input{all:inherit;}, scheint es ein solches Szenario zu geben, in dem das Eingabefeld weder einen Rahmen, Hintergrund, Abstand noch eine Polsterung benötigt.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Detaillierte Analyse des Problems beim Hinzufügen von Where-Bedingungen mit Left Join in MySQL

>>:  10 zu wenig genutzte oder missverstandene HTML-Tags

Artikel empfehlen

Tutorial zur Optimierung der Installationskonfiguration von MySQL 8.0.18

Die Installation, Konfiguration und Optimierung v...

Die Grundprinzipien und die detaillierte Verwendung des Ansichtsfensters

1. Übersicht über das Ansichtsfenster Mobile Brow...

Vue implementiert ein Suchfeld mit einer Lupe

In diesem Artikel erfahren Sie, wie Sie mit Vue e...

So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

Wenn für MySQL 5.5 der Zeichensatz nicht festgele...

So fragen Sie einen Datensatz in MySQL ab, auf welcher Seite der Paging-Seite

Vorwort In der Praxis kann es zu folgendem Proble...

js implementiert einen einfachen Rechner

Verwenden Sie natives JS, um einen einfachen Rech...

Zusammenfassung der wichtigsten Wissenspunkte zur MySQL-Abfrageoptimierung

Vorwort Abfrageoptimierung ist nichts, was über N...

So implementieren Sie eine MySQL-Datenbanksicherung in Golang

Hintergrund Navicat ist das beste MySQL-Visualisi...

Lassen Sie sich die tiefe Kopie von js verstehen

Inhaltsverzeichnis js tiefe Kopie Methode der Dat...

Einfaches Verständnis und Beispiele für MySQL Index Pushdown (ICP)

Vorwort Index Condition Pushdown (ICP) ist eine n...

CSS-Code zur Steuerung der Hintergrundfarbe der Webseite

Ich glaube, jeder macht sich oft Sorgen, ob er Bi...

Bootstrap+Jquery zum Erreichen eines Kalendereffekts

In diesem Artikel wird der spezifische Code von B...

Native JS-Kapselung, nahtlose Karussellfunktion

Natives js-gekapseltes nahtloses Karussell-Plug-I...

Fortgeschrittene JavaScript-Programmierung: Variablen und Umfang

Inhaltsverzeichnis 1. Ursprungswert und Bezugswer...