Ich möchte die offizielle CSS | MDN-Dokumentation zur späteren Bezugnahme zitieren, wenn ich die Unterschiede zwischen den beiden untersuche:
INITIALE
Das anfängliche CSS-Schlüsselwort wendet den Anfangswert einer Eigenschaft auf ein Element an. Es ist für jede CSS-Eigenschaft zulässig und bewirkt, dass das Element, für das es angegeben ist, den Anfangswert der Eigenschaft verwendet.
Deshalb nach Ihrem Beispiel:
em {
color:initial;
}
<p style="color:red!important">
this text is red
<em>
this text is in the initial color (e.g. black)
</em>
this is red again
</p>
Beachten Sie, wie die ursprüngliche Eigenschaft die behält Anfang der color
Eigenschaft des Elements.
UNSET
Das nicht gesetzte CSS-Schlüsselwort ist die Kombination aus dem anfänglichen und dem geerbten Schlüsselwort. Wie diese beiden anderen CSS-weiten Schlüsselwörter kann es auf jede CSS-Eigenschaft angewendet werden, einschließlich der CSS-Kurzform all. Dieses Schlüsselwort setzt die Eigenschaft auf ihren geerbten Wert zurück, wenn sie von ihrem übergeordneten Wert erbt, oder auf ihren Anfangswert, wenn nicht. Mit anderen Worten, es verhält sich im ersten Fall wie das ererbte Schlüsselwort und im zweiten Fall wie das ursprüngliche Schlüsselwort.
Deshalb nach Ihrem Beispiel:
em {
color:unset;
}
<p style="color:red!important">
this text is red
<em>
this text's color has been unset (e.g. red)
</em>
this is red again
</p>
Beachten Sie, wie die Eigenschaft unset einfach die Eigenschaft des Elements zurücksetztcolor
.
ABSCHLIESSEND
Die Idee ist recht einfach, aber in der Praxis würde ich Vorsicht walten lassen, wenn es um die Cross-Browser-Kompatibilität für beide CSS-Eigenschaften geht ... das ist ab heute.