7
votes

Comment cibler l'élément HTML d'une classe spécifique d'un élément de corps

Utilisation de Drupal, le thème a une couleur d'arrière-plan attribuée à l'élément code>. Je crée un distinct code> CSS pour une seule page et souhaitez supprimer la couleur d'arrière-plan uniquement pour cette page lorsque l'utilisateur imprime la page. L'élément code> n'a pas de classe, ni d'identifiant, mais le code> est.

|------------------------|
|         <HTML>         |
|      |----------|      |
|      |          |      |
|      |  <BODY>  |      |
|      |          |      |
|      |----------|      |
|                        |
|------------------------|       


0 commentaires

3 Réponses :


4
votes

en jQuery, vous pouvez effectuer ce qui suit:

$('body.specialPage').parent('html').css({'background-color': 'white'});


3 commentaires

Pas besoin d'utiliser la syntaxe de la carte pour CSS () sinice, vous ne changez qu'une propriété.


J'ai tendance à utiliser cette syntaxe simplement parce que je pourrais ajouter plus de propriétés plus tard, et il a donc tendance à rendre ma base de code plus maintenue. Juste une préférence personnelle.


@Mechaflash Si c'est ce que vous avez fini par faire, assurez-vous d'accepter la réponse.



3
votes
if( $("body").hasClass("specialPage") ){
    $("html").css("background-color","");
}

0 commentaires

3
votes

Vous pouvez essayer de remplacer le style de couleur de fond de la balise HTML avec le modificateur IMPORT !.

<HTML style="background-color:#666">
  <BODY class=specialPage style="background-color:#123 !important">
  </body>
</html>


2 commentaires

C'est probablement la méthode préférée depuis que le style ne devrait vraiment pas arriver dans JavaScript. +1


Créé une modification dans ma question. Cela fonctionnerait à l'exception du reste du style par défaut.