mam ten znaczników gdzie identyfikatory nie są znane z góry:Wybierz elementy z losowo generowanych identyfikatorów CSS
#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>
Muszę zmienić kolor tła wszystkich DIV. Jest to najbardziej szczegółowy selektor mogę myśleć, ale to nie działa:
div.product[id^="product-"] { background-color: transparent; }
można to zrobić bez ciężkiej kodowania identyfikatorów, korzystając !important
i zmieniającym znaczników HTML?
Selektory, które zawierają i selektor '# id' są tak szczegółowe, jak tylko możesz, ponieważ mają na celu być wyjątkowym. Jeśli naprawdę nie możesz postępować zgodnie ze standardowymi wytycznymi CSS i usuwać selektory id, musisz nie stosować się do standardowych wytycznych CSS i używać '! Important'. To nie zawsze jest złe. – Rhumborl
Możesz przenieść konkretny znacznik koloru tła do elementu przed css i zastąpić je klasą .product. – Kao
Trzy selektory 'id' mają specyficzność 100, podczas gdy' div.product [id^= "product -"] 'ma specyficzność tylko 021, więc nie zastąpi koloru tła. Musisz użyć selektora 'id', aby mieć możliwość nadpisania bez używania twardego kodu/ważnego. Może więc przypiszesz 'id' do ciała i użyjesz' #id div.product [id^= "product -"] '. – Harry