J'ai ces divs avec lesquels je stylise .tocolor
, mais j'ai également besoin de l'identifiant unique 1,2,3,4 etc., donc j'ajoute cela comme une autre classe tocolor-1
.
<div class="tocolor tocolor-1"> tocolor 1 </div>
<div class="tocolor tocolor-2"> tocolor 2 </div>
<div class="tocolor tocolor-3"> tocolor 3 </div>
<div class="tocolor tocolor-4"> tocolor 4 </div>
.tocolor{
background: red;
}
Existe-t-il un moyen d'avoir une seule classe tocolor-*
. J'ai essayé d'utiliser un caractère générique *
comme dans ce CSS, mais cela n'a pas fonctionné.
.tocolor-*{
background: red;
}
css
css-selectors
wildcard
Twitter
la source
la source
Réponses:
Ce dont vous avez besoin est appelé sélecteur d'attributs. Un exemple, en utilisant votre structure html, est le suivant:
À la place de
div
vous pouvez ajouter n'importe quel élément ou le supprimer complètement, et à la place declass
vous pouvez ajouter n'importe quel attribut de l'élément spécifié.[class^="tocolor-"]
- commence par "tocolor-".[class*=" tocolor-"]
- contient la sous-chaîne "tocolor-" apparaissant directement après un caractère espace.Démo: http://jsfiddle.net/K3693/1/
Plus d'informations sur les sélecteurs d'attributs CSS, vous pouvez trouver ici et ici . Et à partir de MDN Docs MDN Docs
la source
div[class*="foo"][class="bar"]
?class="foo tocolor-red"
matchs, mais pasclass="foo fromtocolor-red-blue"
Oui, c'est possible.
Cela sélectionnera tous les identifiants commençant par
'term-'
.Quant à la raison de ne pas le faire, je vois où il serait préférable de choisir cette façon; quant au style, je ne le ferais pas moi-même, mais c'est possible.
la source
ID
addenda basé, pas seulement pourclass
.Une solution alternative:
div[class|='tocolor']
correspondra aux valeurs de l'attribut "class" qui commencent par "tocolor-", y compris "tocolor-1", "tocolor-2", etc.Attention, cela ne correspondra pas
Référence: https://www.w3.org/TR/css3-selectors/#attribute-representation
la source
class
attribut commence par une autre classe qui ne commence pas partocolor
.foo*
, vous feriezQLabel[objectName|='foo'] { ... }
Si vous n'avez pas besoin de l'identifiant unique pour un nouveau style des divs et que vous utilisez HTML5, vous pouvez essayer d'utiliser des attributs de données personnalisés. Lisez la suite ici ou essayez une recherche google pour
HTML5 Custom Data Attributes
la source