:root 真的没用吗?
Is :root really useless?
我知道 :root
可以用于 select html
标记 HTML 文件和 select svg
标记 svg
文件(关于样式 XML 文件,这真的很奇怪,对我不适用),但我认为 :root
优于 html
或 [=12] 是没有意义的=] select 或。对 HTML 和 SVG 应用相同的样式对使用 :root
的我来说真的很奇怪。我确信这不是现实情况。
:root
的唯一有效应用我found它可以用来覆盖html
样式(因为伪类selector比类型selector), 但我会避免经常覆盖 html
并稍后放置特定的 CSS 文件链接以避免这种需要。
所以问题是::root
是否有任何现实世界的应用,它不会只是 html
(或 svg
对于 SVG 文件)的奇怪替代?
对于绝大多数使用 HTML 的作者来说,:root
和 html
之间只有两个实际差异:
:root
,作为伪 class,更具体。如果您需要类型选择器的特异性较低,则完全可以使用 html
而不是 :root
.
:root
可用于对 Internet Explorer 8 及更早版本隐藏规则(这种用例在 2017 年可能并不普遍,但在五年前相当普遍)。
除此之外,:root
伪class确实主要是为匹配任意文档中的根元素而无需知道元素类型的用例而设计的,这意味着基于 XML 的语言,甚至其他非 XML 类型的文档。请记住,从级别 3 开始,选择器模块设计用于各种文档语言的多种用途,而不仅仅是使用 CSS 样式化 HTML 元素(这就是为什么它现在被简称为 "Selectors" 而不是 "CSS Selectors",尽管它是一个 CSS 模块)。
此外,对于根元素没有自己类型的宿主语言(例如,在 element
可能既是根元素又可能是嵌套的语言中),:root
是必需的用于区分根元素和嵌套元素(尽管存在替代方案,例如 :not(:nth-child(n))
在选择器 3 中具有相同的特异性,或 :not(* > *)
在选择器 4 中具有 零 特异性)。
我知道 :root
可以用于 select html
标记 HTML 文件和 select svg
标记 svg
文件(关于样式 XML 文件,这真的很奇怪,对我不适用),但我认为 :root
优于 html
或 [=12] 是没有意义的=] select 或。对 HTML 和 SVG 应用相同的样式对使用 :root
的我来说真的很奇怪。我确信这不是现实情况。
:root
的唯一有效应用我found它可以用来覆盖html
样式(因为伪类selector比类型selector), 但我会避免经常覆盖 html
并稍后放置特定的 CSS 文件链接以避免这种需要。
所以问题是::root
是否有任何现实世界的应用,它不会只是 html
(或 svg
对于 SVG 文件)的奇怪替代?
对于绝大多数使用 HTML 的作者来说,:root
和 html
之间只有两个实际差异:
:root
,作为伪 class,更具体。如果您需要类型选择器的特异性较低,则完全可以使用html
而不是:root
.:root
可用于对 Internet Explorer 8 及更早版本隐藏规则(这种用例在 2017 年可能并不普遍,但在五年前相当普遍)。
除此之外,:root
伪class确实主要是为匹配任意文档中的根元素而无需知道元素类型的用例而设计的,这意味着基于 XML 的语言,甚至其他非 XML 类型的文档。请记住,从级别 3 开始,选择器模块设计用于各种文档语言的多种用途,而不仅仅是使用 CSS 样式化 HTML 元素(这就是为什么它现在被简称为 "Selectors" 而不是 "CSS Selectors",尽管它是一个 CSS 模块)。
此外,对于根元素没有自己类型的宿主语言(例如,在 element
可能既是根元素又可能是嵌套的语言中),:root
是必需的用于区分根元素和嵌套元素(尽管存在替代方案,例如 :not(:nth-child(n))
在选择器 3 中具有相同的特异性,或 :not(* > *)
在选择器 4 中具有 零 特异性)。