我有这样的标记,其中id事先不知道:
#product-20625055 { background-color: #FC0; }
#product-66980342 { background-color: #0CF; }
#product-54722210 { background-color: #F0C; }
<div class="product" id="product-20625055">Product 1</div>
<div class="product" id="product-66980342">Product 2</div>
<div class="product" id="product-54722210">Product 3</div>
div.product[id^="product-"] { background-color: transparent; }
不使用硬编码的id,可以使用!important
并更改HTML标记来完成这个操作吗?
#id
选择器的选择器是最具体的,因为它们是唯一的。如果您真的无法遵循标准 CSS 指南并删除 id 选择器,则必须不遵循标准 CSS 指南并使用!important
。它并不总是邪恶的。 - Rhumborlid
选择器的特异性为 100,而div.product[id^="product-"]
的特异性仅为 021,因此不会覆盖背景颜色。您需要使用一个id
选择器才有可能在不使用硬编码/important 的情况下进行覆盖。因此,您可以将一个id
分配给 body 并使用#id div.product[id^="product-"]
。 - Harry