今天在阅读《深入解析 CSS》一书时看到这么一段话:

在文档中,根节点是所有其他元素的祖先节点。根节点有一个伪类选择器(: root),可以用来选中它自己。这等价于类型选择器 html,但是 html 的优先级相当于一个类名,而不是一个标签。
第一句话很好理解,但是第二句话让我愣了一下。我第一时间的理解是 : root 是等价于 < html> 的伪类,而且 < html> 的优先级相当于类型选择器,而不是标签选择器。
虽然我是第一次接触 : root,对它不太了解。但是我对 < html> 还是很熟悉的,它的优先级绝对是普通标签选择器的优先级啊,感觉这句话的的表达方式多少有点问题。
于是我上网查了查,最终明确了 < html> 与 : root 的区别,具体如下:
总的来说,< html> 与 : root 很像,但是 : root 应该是优于根标签的,作者后续内容的例子也采用了 : root。
最后我也在该书电子版的社区看到有人对该问题进行了勘误,问题圆满解决。总之,通过这个误会加深了我对 : root 和 < html> 的理解,也算是有所裨益了。