Joker * en CSS pour les classes

J'ai ces divs avec lesquels je stylise .tocolor, mais j'ai aussi besoin de l'identifiant unique 1,2,3,4 etc. j'ajoute donc 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;
}

Est-il un moyen d'avoir seulement 1 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;
}
553
demandé sur Leandro Tupone 2011-02-24 23:46:11

4 réponses

Ce dont vous avez besoin est appelé sélecteur d'attributs. Un exemple, en utilisant votre structure html, est le suivant:

div[class^="tocolor-"], div[class*=" tocolor-"] {
    color:red 
}

Au lieu de div, vous pouvez ajouter n'importe quel élément ou de la supprimer tout à fait, et à la place de class 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-" se produisent directement après un caractère d'espace.

Démo: http://jsfiddle.net/K3693/1/

Plus informations sur le CSS sélecteur d'attribut, vous pouvez trouver ici et ici.

1018
répondu Sotiris 2017-02-10 23:57:05

Oui, vous pouvez cela.

*[id^='term-']{
    [css here]
}

Cela sélectionnera tous les ID qui commencent par 'term-'.

Quant à la raison de ne pas faire cela, je vois où il serait préférable de choisir de cette façon; quant au style, Je ne le ferais pas moi-même, mais c'est possible.

91
répondu thomas.han 2017-02-09 16:27:27

Une solution alternative:

div[class|='tocolor'] va correspondre à des valeurs de l'attribut "class" qui commencent par "tocolor-", y compris "tocolor-1", "tocolor-2", etc.

Attention, cela ne correspond pas `

Référence: https://www.w3.org/TR/css3-selectors/#attribute-representation

[att|=val]

Représente un élément avec l'attribut att, sa valeur étant exactement " val "ou commençant par" val " immédiatement suivi de "-" (U + 002D)

21
répondu adroitec 2017-02-10 23:50:55

Si vous n'avez pas besoin de l'identifiant unique pour un style ultérieur des DIV et que vous utilisez HTML5, vous pouvez essayer d'utiliser des attributs de données personnalisés. Lire sur ici, ou essayez une recherche google pour les HTML5 Custom Data Attributes

3
répondu DKSan 2011-02-24 20:55:02