我有一个HTML文档,其中包含许多具有样式类.ps-label
的元素。除了一个元素,我需要将一个样式应用于所有这些样式。该元素位于div
中,如下所示:
<div class="ps_box-edit psc_disabled psc_has_value g3form-hdr-formid" id="win5divG3FORM_WRK_G3FORM_ID">
<div class="ps_box-label" id="win5divG3FORM_WRK_G3FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G3FORM_WRK_G3FORM_ID">415</span>
</div>
div中有两个id会发生变化。它们是#win5divG3FORM_WRK_G3FORM_ID
和#win5divG3FORM_WRK_G3FORM_IDlbl
。根据几个不同的条件,数字会有所不同。因此,如果我想使用这个id,我必须进行模式匹配。
如何选择.ps-label
类的所有元素,除了div
内的元素?
我尝试了以下选择器,但它不太正确。
.ps-label:not([id$="divG3FORM_WRK_G3FORM_ID"]) { }
它不起作用,因为它没有引用带有标签的跨度。它指的是父母。如何排除具有该特定ID的div的子项?
我尝试使用子选择器>
来获取具有该ID的div的后代,但我的语法必定是错误的,因为Chrome不接受它作为有效的选择器:
.ps-label:not([id$="divG3FORM_WRK_G3FORM_ID"] > div > span) { }
我做错了什么?这甚至可能吗?
答案 0 :(得分:2)
我会添加一个针对所有.ps-label
的规则,然后针对您的例外
.ps-label{
color:red;
}
/* exception rule*/
#win5divG4FORM_WRK_G4FORM_IDlbl .ps-label {color:blue;}
&#13;
<div class="ps_box-edit psc_disabled psc_has_value g3form-hdr-formid" id="win5divG3FORM_WRK_G3FORM_ID">
<div class="ps_box-label" id="win5divG3FORM_WRK_G3FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G3FORM_WRK_G3FORM_ID">415</span>
<div class="ps_box-label" id="win5divG4FORM_WRK_G4FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G4FORM_WRK_G4FORM_ID">416</span>
<div class="ps_box-label" id="win5divG5FORM_WRK_G5FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G5FORM_WRK_G5FORM_ID">417</span>
</div>
&#13;
另一种选择可能是使用此
div.ps_box-label:not(#win5divG4FORM_WRK_G4FORM_IDlbl) + .ps_box-value{
color:green;
}
&#13;
<div class="ps_box-edit psc_disabled psc_has_value g3form-hdr-formid" id="win5divG3FORM_WRK_G3FORM_ID">
<div class="ps_box-label" id="win5divG3FORM_WRK_G3FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G3FORM_WRK_G3FORM_ID">415</span>
<div class="ps_box-label" id="win5divG4FORM_WRK_G4FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G4FORM_WRK_G4FORM_ID">416</span>
<div class="ps_box-label" id="win5divG5FORM_WRK_G5FORM_IDlbl">
<span class="ps-label">Form ID</span>
</div>
<span class="ps_box-value" aria-disabled="true" id="G5FORM_WRK_G5FORM_ID">417</span>
</div>
&#13;