Html CSS通配符选择器-无覆盖?

Html CSS通配符选择器-无覆盖?,html,css,css-selectors,css-specificity,Html,Css,Css Selectors,Css Specificity,谁能告诉我为什么最后一个跨度是虚线?为什么它没有被覆盖 叉形笔 div div div*span{ 边界:双; } 分区**跨度{ 边框:虚线; } 分区*{ 边框:虚线; } div{ 边界:无; } 第1行 第2行 第3行 第4行 第5行 第6行 让我们把这个规则一条一条地分解 让我们假设您现在已经听说了术语专一性,正如其他人在评论中提到的那样。但是,让我们假设你对它一无所知,除了它与你的问题有关之外,或者你已经阅读了提供给你的链接,但是你在将这些知识应用到这个特定的问题上

谁能告诉我为什么最后一个跨度是虚线?为什么它没有被覆盖

叉形笔

div div div*span{
边界:双;
}
分区**跨度{
边框:虚线;
}
分区*{
边框:虚线;
}
div{
边界:无;
}

第1行

第2行
第3行
第4行
第5行
第6行

让我们把这个规则一条一条地分解

让我们假设您现在已经听说了术语专一性,正如其他人在评论中提到的那样。但是,让我们假设你对它一无所知,除了它与你的问题有关之外,或者你已经阅读了提供给你的链接,但是你在将这些知识应用到这个特定的问题上遇到了困难

首先,专一性只考虑与要开始的元素匹配的选择器。由于
div
span
是两个不同的东西,最后一条规则是不相关的,所以让我们去掉它:

div div div*span{
边界:双;
}
分区**跨度{
边框:虚线;
}
分区*{
边框:虚线;
}
现在我们有三条规则,其中两条要求一个
span
,第三条是任意元素

第一条规则,
div div*span
,与“第6行”元素不匹配,因为它的
div
祖先只上三级。最里面的
div
span
之间没有第四级,最外面的
div
的父级不是另一个
div
,而是
body
。因此,与此元素实际匹配的仅有两条规则是:

div**span{
边框:虚线;
}
分区*{
边框:虚线;
}
现在我们可以谈谈具体性了。通用选择器
*
的特异性为零。所有规则都只有类型选择器和/或通用选择器,因此计算它们的特殊性非常简单:

div**span/*2类型->特异性=(0,0,2)*/
div*/*1类型->特异性=(0,0,1)*/

总之,由于虚线边框规则更具体,虚线边框规则不会覆盖它。

我建议您查找它-您希望覆盖它的规则是什么?作为@Paulie_d评论的扩展,请参阅和随附的文档……
div**span
没有太大作用sense@j08691:这与一个跨度相匹配,至少是一个div的曾孙。这肯定不是你在现实CSS中经常遇到的事情。。。