6
votes

Cibler une classe quand dans une autre classe

Je crée une DIV qui aura un style par défaut, mais il va également avoir diverses options pour différents styles en fonction du contenu. Mon objectif est de pouvoir que ces styles ne prennent effet que lorsqu'il est imbriqué à l'intérieur du nom de la classe personnalisé. Genre de difficile à expliquer verbalement donc je vais donner quelques exemples de code de ce que je veux dire:

Ce sera la structure HTML pour la vue par défaut: p>

.custom .default {
  declaration: attribute;
}


6 commentaires

Faites confiance à votre premier appris ... c'est correct!


ce code fonctionnera parfaitement comme il est


.Custom .default est un sélecteur descendant qui représente .default des éléments descendants de .custom éléments. Par conséquent, votre première pensée est correcte.


" Je ne peux pas vivre le test juste pour l'instant parce que le transfert FTP n'a pas encore été mis en place pour moi sur ce serveur" ? quelle? vous auriez pu ouvrir n'importe quel éditeur en ligne ou créer un fichier HTML avec le bloc-notes et le tester vous-même -__-


Impressionnant, merci pour les gars de confirmation, désolé pour le temps où il s'agissait que c'est que cela m'a déclenché haha. Je l'aurais testé moi-même mais sans ennuyeux avec trop de détails, il a été très difficile de dupliquer l'environnement localement pour que je voulais juste m'assurer que je l'avais juste à l'avance. @TJ: Il existe des choses spécifiques sur l'environnement de développement avec cette société qui rend difficile la duplication locale sans pouvoir télécharger sur le CMS, si vous êtes tellement irrité avec une question, il n'a pas plus de sens de l'ignorer et avance?


Je ne pouvais pas trouver une question exacte exacte selon laquelle afin de fermer celui-ci comme dupliquer. Le plus similaire est Stackoverflow.com/questions/1140646/... :)


4 Réponses :


15
votes

Oui, c'est vrai. Cela ciblera tout .default code> contenu par un .custom code> (à n'importe quel point de son ancêtre) ( violon ): xxx pré>

Voir la combinaison descendante et Autres A >. sub> p>

et oui, il peut remplacer les déclarations spécifiées par .default code> ( FIDDLE ): P>

.default {
  color: green;
}
.custom .default {
  color: red; /* overrides green */
}


2 commentaires

@Roko Aucune infraction, mais je suis déjà lié aux autres combinaisons pour référence. Je préfère ne pas encombrer la réponse plus loin.


@C np. Tu as cloué +1



0
votes

CSS recherchera un élément qui a une classe de par défaut code> qui est encapsulé dans un parent avec la classe personnalisé code>, tous les nœuds enfants correspondant à cette règle aura le Styling appliqué à eux, vous pouvez créer autant de thèmes différents pour le même élément que vous le souhaitez, tant que vous modifiez la classe.

Donc donc votre code: p>

.custom .default {
    declaration: attribute;
}


0 commentaires

1
votes

Vous aviez raison. Et si vous voulez vous assurer de cibler uniquement les descendants directs, vous pouvez le faire:

<div class="custom">
    <div class="default">
        <div class="default"></div>
    </div>
</div>


1 commentaires

@Canon Désolé, mauvais formulation. Je voulais dire les premiers descendants.



5
votes

Alors, la réponse de Canon est suffisante ... mais, juste pour la la clarté que vous avez posée.

Vous pouvez limiter votre sélecteur à cibler uniquement un élément imbriqué, avec deux méthodes:

  • Sélecteur descendant : Il est écrit avec un espace blanc et cible l'élément enfant à tout niveau imbriqué à l'intérieur du parent:

    MDN Ref Docs xxx

    • Sélecteur enfant : Il est écrit avec un > Charachter et cible uniquement l'enfant que s'il est directement imbriqué, un enfant immédiat: < / li>

      MDN Ref Docs xxx


2 commentaires

@Shomz n'oublie pas Mon commentaire :)


@Hashemqolami ouais, oui, corrige le libellé :)