inherit, initial, unset, revert

Avatar of Chris Coyier
Chris Coyier on

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Es gibt vier Schlüsselwörter, die gültige Werte für jede CSS-Eigenschaft sind (siehe Titel). Davon würde ich sagen, dass inherit im täglichen Gebrauch am häufigsten vorkommt. Vielleicht, weil es am längsten existiert (glaube ich?), aber auch, weil es logisch sinnvoll ist („bitte erbe deinen Wert von deinem nächsten Elternelement, das ihn setzt“). Dies könnte man zum Beispiel bei einer Überschreibung der Linkfarbe sehen.

<footer>
  ©2012 Website — <a href="/contact">Contact</a>
</footer>
/* General site styles */
a {
  color: blue;
}

footer {
  color: white;
}
footer a {
  color: inherit;
}

Das ist eine anständige und elegante Methode, um die Tatsache zu handhaben, dass Text und Links im Footer dieselbe Farbe haben sollen, ohne sie zweimal setzen zu müssen.

Die anderen verhalten sich jedoch anders...

  • initial setzt die Eigenschaft auf den Standardwert der Spezifikation zurück.
  • unset ist verdammt seltsam. Für eine vererbbare Eigenschaft (z. B. color) bedeutet es inherit, und für eine nicht vererbbare Eigenschaft (z. B. float) bedeutet es initial. Das ist für mich ein Gehirnknoten, so dass ich es noch nie benutzt habe.
  • revert ist ähnlich seltsam. Gleiches gilt für vererbbare Eigenschaften, es bedeutet inherit. Aber für nicht vererbbare Eigenschaften bedeutet es, zum UA-Stylesheet zurückzukehren. Das ist irgendwie nützlich, da das Zurücksetzen von display zum Beispiel ein <p>-Element nicht auf display: inline; setzt, aber es bleibt ein sinnvolles display: block;.

PPK hat all dies detaillierter behandelt.

Ich bin froh, dass er mein Gejammer darüber gefunden hat

Chris Coyier argumentiert , dass wir einen neuen Wert brauchen, den er default nennt. Er setzt in allen Fällen auf das Stylesheet des Browsers zurück, auch bei vererbbaren Eigenschaften. Somit ist es eine stärkere Version von revert. Ich stimme zu. Dieses Schlüsselwort wäre tatsächlich nützlich.

Amen. Wir haben vier Eigenschaften, um mit der Kaskade auf einzelnen Eigenschaften zu spielen, aber keine, die es uns erlaubt, alles auf die Standardwerte des UA-Stylesheets zurückzusetzen. Wenn wir das hätten, hätten wir ein sehr mächtiges Werkzeug, um mit den Stilen für jedes gegebene Element frisch zu beginnen. In gewisser Weise: Scoped Styles!

PPK hat einen fünften Wert, den er für nützlich hält: cascade. Die Idee ist (vermutlich), dass es sich ähnlich wie currentColor verhält, außer für jede Eigenschaft. So etwas wie eine freie Variable, die man nicht definieren muss und die einem Zugriff auf den kaskadierten Wert gibt, außer man benutzt ihn in einem anderen Kontext (wie einer Berechnung).