web-dev-qa-db-fra.com

Comment faire en sorte que CSS sélectionne un ID commençant par une chaîne (pas en Javascript)?

Si le HTML contient des éléments comme celui-ci:

id="product42"
id="product43"
...

Comment puis-je faire correspondre tous ces identifiants commençant par "produit"?

J'ai vu des réponses qui font exactement cela en utilisant javascript, mais comment le faire avec uniquement du CSS?

170
guptron
[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.

312
Niet the Dark Absol

Je le ferais comme ça:

[id^="product"] {
  ...
}

Idéalement, utilisez une classe. Voici à quoi servent les classes:

<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 {
  ...
}
57
Blender

Utilisez le sélecteur d'attribut

[id^=product]{property:value}
5
Musa

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 qui commencent par le mot entre guillemets.

0
Luigi Spezia