Si j'ai le div suivant:
<div class="sectionA" id="content">
Lorem Ipsum...
</div>
Existe-t-il un moyen de définir un style qui exprime l'idée "Un div avec id='content'
ET class='myClass'
"?
Ou devez-vous simplement aller dans un sens ou dans l'autre comme dans
<div class="content-sectionA">
Lorem Ipsum...
</div>
Ou
<div id="content-sectionA">
Lorem Ipsum...
</div>
css
css-selectors
Larsenal
la source
la source
img#Inbox
icône sur votre page qui est normalement définie sur une opacité de 50%. Cependant, lorsque l'utilisateur a un message, vous souhaitez qu'il soit défini à 100% d'opacité, et le backend l'indique en ajoutant uneactive
classe à l'élément. Dans un tel scénario, il est logique d'avoir un sélecteur qui combine à la fois l'ID et le nom de classe.code
<p id = Product_1 class = Product> Product 1 </p> <p id = Product_2 class = Product> Product 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?Réponses:
Dans votre feuille de style:
Edit: Cela pourrait aussi aider:
et, selon votre exemple:
Edit, 4 ans plus tard: Puisque c'est super vieux et que les gens continuent de le trouver: n'utilisez pas les tagNames dans vos sélecteurs.
#content.myClass
est plus rapide quediv#content.myClass
parce que le tagName ajoute une étape de filtrage dont vous n'avez pas besoin. Utilisez tagNames dans les sélecteurs uniquement là où vous devez!la source
div.class#id
devrait être équivalent mais moins recommandé; utilisez d'abord des parties plus uniques du sélecteur.Il existe des différences entre
#header .callout
et#header.callout
en CSS.Voici le "simple anglais" de
#header .callout
:Sélectionnez tous les éléments avec le nom de classe
callout
qui sont des descendants de l'élément avec un ID deheader
.Et
#header.callout
signifie:Sélectionnez l'élément qui a un ID
header
et également un nom de classe decallout
.Vous pouvez en savoir plus ici astuces css
la source
Il n'y a rien de mal à combiner un identifiant 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 voulez vraiment vous pouvez faire:
Vous n'avez pas besoin du
div
devant de 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 celles-ci auront un poids supérieur à celles de la classe uniquement. Les règles spécifiées par la classe sont des propriétés qui s'appliquent à plusieurs éléments que vous ne souhaitez pas modifier à plusieurs endroits chaque fois que vous devez les ajuster.
Cela se résume à ceci:
Ça a du sens?
la source
En règle générale, vous ne devriez pas avoir besoin de classer un élément spécifié par id, car id est toujours unique, mais si vous en avez vraiment besoin, les éléments suivants devraient fonctionner:
la source
Vous pouvez combiner l'ID et la classe en CSS, mais les ID sont censés être uniques, donc l'ajout d'une classe à un sélecteur CSS la surqualifierait.
la source
utiliser:
tag.id ; tag#class
dans les variables de balise de votre CSS.la source
Les identifiants sont censés être uniques à l'échelle du document, vous ne devriez donc pas avoir à sélectionner en fonction des deux. Vous pouvez affecter un élément à plusieurs classes avec
class="class1 class2"
la source
Je pense que vous vous trompez tous. Les ID par rapport à la classe ne sont pas une question de spécificité; ils ont des utilisations logiques complètement différentes.
Les identifiants doivent être utilisés pour identifier des parties spécifiques d'une page: l'en-tête, la barre de navigation, l'article principal, l'attribution de l'auteur, le pied de page.
Les classes doivent être utilisées pour appliquer des styles à la page. Disons que vous avez un site de magazine général. Chaque page du site va avoir les mêmes éléments - en-tête, navigation, article principal, barre latérale, pied de page. Mais votre magazine comporte différentes sections - économie, sports, divertissement. Vous voulez que les trois sections aient un aspect différent - économie conservatrice et carrée, sport action-y, divertissement brillant et jeune.
Vous utilisez des classes pour cela. Vous ne voulez pas avoir à faire plusieurs identifiants - # article-économie et # article-sport et # article-divertissement. Cela n'a aucun sens. Vous devez plutôt définir trois classes, .economics, sports et .entertainment, puis définir les identifiants #nav, #article et #footer pour chacun.
la source
Ne fonctionnera pas quand le doctype est html 4.01 cependant ...
la source