Відповіді:
[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 ", одразу після цього -" " . |=
, але "продукт-42" би.