gpt4 book ai didi

css - 奇异的 css 选择器组合

转载 作者:行者123 更新时间:2023-12-02 08:43:00 26 4
gpt4 key购买 nike

这是我的代码:

HTML

<div id="corner">
<div id="cornerbox"></div>
</div>

CSS

#corner {
background-color: red;
width: 200px; height: 200px;
}
#corner #cornerbox {
background-color:black;
width: 100px; height: 100px;
opacity: 0.4;
}
#corner:hover #cornerbox, #corner #cornerbox.show{
opacity: 1;
}

JavaScript

$(document).keypress(function(e) {
//console.log("keypress event from document: ",e.which);
if (e.which == 63) { // question mark (?) key
$("#cornerbox").toggleClass("show");
}
});

JSFiddle Code is here

因此,CSS 使“#cornerbox”在#corner:hover 时改变不透明度,而 JavaScript 在问号 (?) 键被按下时切换“#cornerbox”的类“show”。

我注意到,如果我将上面的 CSS 更改为如下所示:

#corner {
...
}
#corner #cornerbox {
...
}
#corner:hover #cornerbox, #cornerbox.show {
...
}

按下 (?) 键时不透明度不会改变,但“#cornerbox”接收类“show”。

所有其他可能性都有效。

这有效。

#corner {
...
}
#cornerbox {
...
}
#corner:hover #cornerbox, #corner #cornerbox.show {
...
}

这行得通。

#corner {
...
}
#cornerbox {
...
}
#corner:hover #cornerbox, #cornerbox.show {
...
}

为什么?

提前致谢!

越境

最佳答案

发生这种情况是因为选择器 #cornerbox.show 具有较小的 specificity#corner #cornerbox,这意味着它无法覆盖它。

如果您通过添加 id 选择器来增加 #cornerbox.show 的特异性,或者通过删除 id 选择器来降低 #corner #cornerbox 的特异性,则新状态事务允许第二个选择器覆盖。

关于css - 奇异的 css 选择器组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14938649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com