Ответы:
[id^=product]
^=
указывает «начинается с». И наоборот, $=
указывает «заканчивается».
Символы фактически заимствованы из синтаксиса Regex, где ^
и $
означают «начало строки» и «конец строки» соответственно.
Смотрите спецификации для полной информации.
product
явно допустимый идентификатор, и поэтому не нуждается в кавычках.
:not([id^=product])
Я бы сделал это так:
[id^="product"] {
...
}
В идеале, использовать класс. Вот для чего нужны классы:
<div id="product176" class="product"></div>
<div id="product177" class="product"></div>
<div id="product178" class="product"></div>
И теперь селектор становится:
.product {
...
}
Используйте селектор атрибута
[id^=product]{property:value}
Я заметил, что есть другой селектор CSS, который делает то же самое. Синтаксис выглядит следующим образом:
[id|="name_id"]
Это выберет идентификатор всех элементов, который начинается со слова, заключенного в двойные кавычки.
att|=val
это не то же самое, что att^=val
. Из упомянутой ссылки: |=
Селектор "Представляет элемент с атрибутом att, его значение либо точно равно" val ", либо начинается с" val ", за которым сразу следует" - " ." Таким образом, идентификатор, такой как "product42", не будет соответствовать |=
, но "товар-42" был бы.