Was ist der Unterschied zwischen CSS3 ist :root-Pseudoklasse und html?
Ich kann nicht scheinen, um herauszufinden, viele Informationen über diese.
Das Smashing Magazine scheint zu sagen, dass html
und :root
sind die gleiche Sache, aber sicherlich muss es einen kleinen Unterschied?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der W3C wiki:
CSS ist eine Allzweck-Sprache styling. Es kann verwendet werden, mit anderen Dokument-Typen, nicht nur mit HTML, es kann verwendet werden, mit SVG zum Beispiel.
Aus der Spezifikation (Hervorhebung von mir):
Einen technischen Unterschied zwischen Ihnen ist, dass
:root
- eine pseudo-Klasse hat eine größere Spezifität alshtml
(ein Typ-Selektor)CSS:
HTML:
So, in dem oben genannten Beispiel, die
:root
Selektor überschreibt diehtml
- Selektor und der text wird rot.Für HTML-Dokumente gibt es keinen Unterschied - Ihr root-element ist die
<html>
tag, sohtml{}
und:root{}
sind (abgesehen von einem Unterschied in der Spezifität) semantisch äquivalent.Allerdings können Sie CSS anzuwenden nicht nur für HTML, sondern für alle XML-Dokumente. Das ist, warum
:root
ist es - um auf die Dokument-root-element unabhängig von der Dokument-Typ. Die meisten Menschen sind verwirrt über den Unterschied, weil die überwiegend vorherrschende Verwendung für CSS styling, HTML-Dokumenten.Beispiel:
Sie können den Stil der SVG-Dokumenten mit CSS. Beim styling ist es, Ihr root-element (offensichtlich;-)) nicht
html
abersvg
. Finden Sie in der folgenden Liste SVG-tags.