Il n'y a rien de mal à combiner un id et une classe sur un élément, mais vous ne devriez pas avoir besoin de l'identifier par les deux pour une seule règle. Si vous le voulez vraiment, vous pouvez le faire :
#content.sectionA{some rules}
Vous n'avez pas besoin de la div
devant l'ID comme d'autres l'ont suggéré.
En général, les règles CSS spécifiques à cet élément doivent être définies avec l'ID, et elles auront plus de poids que celles de la classe. Les règles spécifiées par la classe sont des propriétés qui s'appliquent à plusieurs éléments et que vous ne souhaitez pas modifier à plusieurs endroits à chaque fois que vous avez besoin de les ajuster.
Cela se résume à ceci :
.sectionA{some general rules here}
#content{specific rules, and overrides for things in .sectionA}
C'est logique ?
3 votes
Si vous allez sélectionner par id, il n'est pas nécessaire de sélectionner par classe aussi, parce que l'id est unique, donc un seul élément correspondra. L'ajout de la classe au même sélecteur n'est donc qu'une saisie supplémentaire.
24 votes
@TStamper : Pas nécessairement. Vous ne pensez qu'en termes de documents statiques. Par exemple, vous pouvez avoir un
img#Inbox
sur votre page qui est normalement réglé sur une opacité de 50 %. Cependant, lorsque l'utilisateur a un message, vous souhaitez que l'icône soit opacifiée à 100 %, et le backend l'indique en ajoutant une icôneactive
à l'élément. Dans un tel scénario, il est judicieux d'avoir un sélecteur qui combine à la fois l'ID et le nom de classe.0 votes
@TStamper : De plus, le fait d'avoir le sélecteur combiné id+class plus spécifique ne lui donne-t-il pas plus de poids/préférence que la version id seule ? AFAIK, cela devrait. (Autrement dit, les règles du sélecteur combiné id+class l'emportent sur celles du sélecteur combiné id. (C'est la raison/le besoin pour lequel j'ai trouvé ce fil de discussion à l'instant).
0 votes
Je suis donc dans une situation similaire. J'ai par exemple de nombreux produits qui ont des descriptions, mais j'aimerais également avoir un contrôle spécifique sur les produits individuels :
code
<p id=Produit_1 class=Produit>Produit 1</p> <p id=Produit_2 class=Produit>Produit 2</p> <p id=Produit_2 class=Produit>Produit 2</p>code
Ceci pour permettre un style général de tous les produits mais aussi un style individuel pour des produits spécifiques ?