Die Standardstile eines Browsers werden in seinem User Agent-Stylesheet definiert, dessen Quellen Sie hier finden . Leider scheint die Spezifikation Cascading and Inheritance Level 3 keine Möglichkeit zu bieten, eine Stileigenschaft auf die Standardeinstellung ihres Browsers zurückzusetzen. Es ist jedoch geplant, ein Schlüsselwort dafür in Cascading and Inheritance Level 4 wieder einzuführen - die Arbeitsgruppe hat sich einfach noch nicht auf einen Namen für dieses Schlüsselwort festgelegt (der Link sagt derzeit revert, aber es ist nicht endgültig). Informationen zur Browserunterstützung für revertfinden Sie auf caniuse.com .
Während die Level 3-Spezifikation ein initialSchlüsselwort einführt , setzt das Festlegen einer Eigenschaft auf ihren Anfangswert sie auf ihren Standardwert zurück, wie er durch CSS definiert wurde und nicht wie vom Browser definiert . Der Anfangswert von displayist inline; Dies wird hier angegeben . Das initialSchlüsselwort bezieht sich auf diesen Wert, nicht auf die Standardeinstellung des Browsers. Die Spezifikation selbst macht diesen Hinweis unter der allEigenschaft :
Wenn ein Autor beispielsweise all: initialein Element angibt , blockiert er die gesamte Vererbung und setzt alle Eigenschaften zurück, als ob in den Autoren-, Benutzer- oder Benutzeragentenebenen der Kaskade keine Regeln angezeigt würden.
Dies kann für das Stammelement eines in einer Seite enthaltenen "Widgets" nützlich sein, das die Stile der äußeren Seite nicht erben möchte. Beachten Sie jedoch, dass jeder "Standard" -Stil, der auf dieses Element angewendet wird (z. B. display: blockaus dem UA-Stylesheet für Blockelemente wie <div>), ebenfalls weggeblasen wird.
Ich denke, die einzige Möglichkeit, derzeit reines CSS zu verwenden, besteht darin, den Standardwert des Browsers nachzuschlagen und manuell darauf einzustellen:
div.foo { display: inline-block; }
div.foo.bar { display: block; }
(Eine Alternative zu den oben genannten wäre div.foo:not(.bar) { display: inline-block; }, aber dazu muss der ursprüngliche Selektor geändert und nicht überschrieben werden.)
unset.