Javascript 特定于目标的CSS类集
我的文档中有两个元素实例。一个只包含一类Javascript 特定于目标的CSS类集,javascript,html,css,Javascript,Html,Css,我的文档中有两个元素实例。一个只包含一类幻灯片,另一个包含一类幻灯片和幻灯片--current。下面是此标记的一个示例 <div class="slide slide--current"> <h2 class="title title--centered title--modifier">Slide 1</h2> <div class="text-block"> <p>text</p> </div&
幻灯片
,另一个包含一类幻灯片
和幻灯片--current
。下面是此标记的一个示例
<div class="slide slide--current">
<h2 class="title title--centered title--modifier">Slide 1</h2>
<div class="text-block">
<p>text</p>
</div>
</div>
<div class="slide">
<h2 class="title title--centered title--modifier">Slide 2</h2>
<div class="text-block">
<p>text</p>
</div>
</div>
幻灯片1
正文
幻灯片2
正文
如果我想将
文本块
作为目标,当它将slide--current
作为父对象时,我会使用.slide--current>.text block
作为选择器但是如果我想将文本块
作为目标,而它没有幻灯片--current
?我这样问是因为这两个元素都需要始终对它们应用类幻灯片
。如果我使用.slide.text block
样式将应用于slide--current
,而它们不应该应用于此。这是:not()
选择器的情况吗?您可以使用伪选择器:
.slide:not(.slide--current) {
// styling here
}
在您的情况下,只要.text块始终是.slide的直接子项:
.slide > .text-block {
// Apply to all text blocks regardless of state of slide
}
.slide:not(.slide--current) > .text-block {
// Only applied if parent slide is not current
}
通过阅读@Rounin的答案,您可能会获得相同的结果,并避免使用伪选择器,方法是颠倒您的思维过程,首先为所有文本块设置一些基本样式,然后在幻灯片处于当前状态时覆盖它们。您可以使用伪选择器:
.slide:not(.slide--current) {
// styling here
}
在您的情况下,只要.text块始终是.slide的直接子项:
.slide > .text-block {
// Apply to all text blocks regardless of state of slide
}
.slide:not(.slide--current) > .text-block {
// Only applied if parent slide is not current
}
通过阅读@Rounin的答案,你可能会得到同样的结果,并避免使用伪选择器,方法是颠倒你的思维过程,先为所有文本块设置一些基本样式,然后在幻灯片当前时覆盖它们
但是,如果我想将文本块作为目标,而它没有
幻灯片--当前
这是一堂如何在CSS中以正确的顺序使用级联的课
.text-block {
BASIC .text-block STYLES
}
.slide .text-block {
ADDITIONAL .slide .text-block STYLES
}
.slide--current .text-block {
ADDITIONAL .slide--current .text-block STYLES
}
基本上,您从核心样式开始,随着上下文变得越来越具体,您会逐渐添加
但是,如果我想将文本块作为目标,而它没有
幻灯片--当前
这是一堂如何在CSS中以正确的顺序使用级联的课
.text-block {
BASIC .text-block STYLES
}
.slide .text-block {
ADDITIONAL .slide .text-block STYLES
}
.slide--current .text-block {
ADDITIONAL .slide--current .text-block STYLES
}
基本上,您从核心样式开始,随着上下文变得越来越具体,您会不断添加。幻灯片:不是(.slide--current)>。文本块在我的例子中是不是?如果文本块总是幻灯片的直接子项,当然,我只是说明伪选择器的用法:)它是不是。幻灯片:不是(.slide--current)>.text block
在我的例子中?如果文本块始终是幻灯片的直接子项,当然,我只是演示伪选择器的用法:)