recherche

Maison  >  Questions et réponses  >  le corps du texte

Sélecteur CSS (si l'élément n'a pas de parent spécifique)

Je souhaite changer le style d'un élément s'il n'a pas un certain élément parent sans avoir à l'écraser à sa valeur d'origine.

Voir https://jsfiddle.net/xqb2z8tc/ Le problème avec le code ci-dessus est qu'en raison de l'utilisation intensive de mixins, il génère beaucoup de CSS, nous souhaitons donc le réécrire. J'ai pensé à utiliser le sélecteur ':has()' (la prise en charge du navigateur nous convient), mais je ne sais pas comment.

Semblable au code ci-dessous, mais cela devrait fonctionner dans tous les cas, voir le jsfiddle ci-dessus.

.dark-view:not(:has(.obox)) p {
  color: white;
}

P粉092778585P粉092778585316 Il y a quelques jours512

répondre à tous(1)je répondrai

  • P粉949267121

    P粉9492671212024-01-17 10:02:06

    D'après mon interprétation de la question, il semble que vous souhaitiez appliquer color: #fff à tous les éléments color: #fff 应用于 .dark- 中的所有

    元素view 不是 .obox 元素的后代。如果是这种情况,请考虑使用选择器 .dark-view p:not(.obox *) dans .dark-view not < Les descendants de l'élément code>.obox. Si tel est le cas, pensez à utiliser le sélecteur .dark-view p:not(.obox *):

    p {
      color: #111;
    }
    
    .dark-view p:not(.obox *) {
      color: #fff;
    }
    
    /* irrelevant demo stuff */
    .dark-view {
      background: #333;
      padding: 10px;
    }
    
    .obox {
      background: #eee;
      border: 1px solid red;
      padding: 2px;
      margin-bottom: 5px;
    }
    <div class="dark-view">
      
      <div class="obox">
        <p>default</p>
      </div>
      
      <div>
        <div class="obox">
          <p>default</p>
        </div>
      </div>
      
      <div>
        <div>
          <div class="obox">
            <p>default</p>
          </div>
        </div>
      </div>
      
      <p>ondark</p>
      <div>
        <p>ondark</p>
      </div>
    </div>
    
    <p>default</p>
    
    <div class="dark-view">
      <p>ondark</p>
      <div>
        <p>ondark</p>
      </div>
      <div>
        <div>
          <p>ondark</p>
        </div>
      </div>
    </div>

    répondre
    0
  • Annulerrépondre