Respuestas:
[id^=product]
^=
indica "comienza con". Por el contrario, $=
indica "termina con".
Los símbolos se toman prestados de la sintaxis Regex, donde ^
y $
significa "inicio de cadena" y "final de cadena" respectivamente.
Consulte las especificaciones para obtener información completa.
product
es claramente un identificador válido y, por lo tanto, no necesita comillas.
:not([id^=product])
Lo haría así:
[id^="product"] {
...
}
Idealmente, usa una clase. Para esto son las clases:
<div id="product176" class="product"></div>
<div id="product177" class="product"></div>
<div id="product178" class="product"></div>
Y ahora el selector se convierte en:
.product {
...
}
Usa el selector de atributos
[id^=product]{property:value}
Noté que hay otro selector de CSS que hace lo mismo. La sintaxis es la siguiente:
[id|="name_id"]
Esto seleccionará todos los ID de elementos que comienzan con la palabra entre comillas dobles.
att|=val
NO es lo mismo que att^=val
. De la referencia mencionada: El |=
selector "Representa un elemento con el atributo att, su valor es exactamente" val "o comienza con" val " seguido inmediatamente por" - " ." Por lo tanto, una identificación como "product42" no coincidiría con |=
, pero "producto-42" lo haría.