在Chrome DevTools中,通过「Computed」标签页可定位生效CSS规则并跳转源码;「Styles」面板显示Specificity值判断优先级;用$$()验证选择器匹配;:hov图标可强制触发伪类状态。
直接看「Styles」面板右侧的「Computed」标签页,它会列出当前元素最终计算出的所有样式值,并在每条属性旁标注来源——点击那个 file.css:12 或 inline:1 链接,就能跳转到对应规则位置。注意:这里显示的是已生效的规则,不是所有匹配上的;如果某条规则被划掉(strikethrough),说明它被更高优先级的规则覆盖了。
在「Styles」面板左侧,展开你写的那条 CSS 规则,底部会显示 Specificity: 0,1,1,2 这样的值(格式为 inline, id, class/attribute/pseudo-class, element/pseudo-element)。数值越大优先级越高。常见陷阱:
.header .nav a:hover 和 #main-nav a 看似前者更“具体”,但后者含 ID 选择器,Specificity 是 0,1,0,1,高于前者的 0,0,2,1
style="color:red")优先级为 1,0,0,0,几乎无法被外部 CSS 覆盖,除非用 !important
在「Elements」面板中右键目标元素 → 选 Break on > attribute modifications 不适用,真正有效的是:在控制台输入 $$("你的选择器"),比如 $$(".btn-primary[data-loading]"),它会返回匹配到的 NodeList。空数组说明没匹配上。再配合 $("你的选择器") 查看第一个匹配项,快速验证语法和范围是否正确。
$$("article h2:first-of-type")
// → 返回所有 article 下第一个 h2 元素
「Elements」面板中选中元素后,在右上角「Styles」面板顶部有一排小图标::hov,点击它,勾选 :hover、:active、:focus 等,就能强制触发对应状态,让相关样式实时显示出来。注意::visited 因安全限制无法通过此方式模拟;:nth-child() 类选择器需确保父容器 DOM 结构稳定,否则切换时可能因重排导致匹配结果变化。
display: none 的父元素,其子元素即使写了 :hover 也永远不会触发。