Réponses:
[id^=product]
^=
indique "commence par". Inversement, $=
indique "se termine par".
Les symboles sont en fait empruntés à la syntaxe Regex, où ^
et $
signifient respectivement «début de chaîne» et «fin de chaîne».
Voir les spécifications pour des informations complètes.
product
est clairement un identifiant valide et n'a donc pas besoin de guillemets.
:not([id^=product])
Je le ferais comme ceci:
[id^="product"] {
...
}
Idéalement, utilisez une classe. Voici à quoi servent les cours:
<div id="product176" class="product"></div>
<div id="product177" class="product"></div>
<div id="product178" class="product"></div>
Et maintenant, le sélecteur devient:
.product {
...
}
Utilisez le sélecteur d'attribut
[id^=product]{property:value}
J'ai remarqué qu'il existe un autre sélecteur CSS qui fait la même chose. La syntaxe est la suivante:
[id|="name_id"]
Cela sélectionnera tous les éléments ID commençant par le mot entre guillemets.
att|=val
n'est PAS le même que att^=val
. D'après la référence mentionnée: Le |=
sélecteur "Représente un élément avec l'attribut att, sa valeur étant soit exactement" val ", soit commençant par" val " immédiatement suivi de" - " ." Donc, un id comme "product42" ne correspondrait pas à |=
, mais "produit-42" le ferait.