Je souhaite utiliser CSSStyleSheet.insertRule () pour insérez une nouvelle classe dans une feuille de style spécifique. Cette feuille de style a l'ID "customStylesheet" par exemple.

Cette page indique "Une feuille de style spécifique est également accessible de son objet propriétaire (Node ou CSSImportRule), le cas échéant. ". Cependant, je ne peux pas comprendre comment accéder à cette feuille de style spécifique.

0
noClue 12 avril 2018 à 19:02

3 réponses

Meilleure réponse

C'est assez simple.

var sheet = document.getElementById('customStylesheet').sheet;

sheet.insertRule('.someclass {display: none;}'); // was missing a ' here

Voici un violon montrant qu'il fonctionne. J'ai mis à jour le violon pour qu'il fonctionne également sur une étiquette de style dans la tête.

4
gforce301 12 avril 2018 à 18:04

Pour obtenir une feuille de style par ID, utilisez ceci:

document.getElementById('stylesheet').sheet;
0
Redwolf Programs 12 avril 2018 à 17:55

Cela peut être fait sans jQuery. Supposons que vous souhaitiez tout définir avec la classe purpleText à color: purple. Tout d'abord, vous obtiendrez la feuille de style en utilisant document.styleSheets[_index_].ownerNode.sheet. Ensuite, utilisez la méthode insertRule(). Le paramètre est juste une chaîne contenant le code CSS, comme dans ".purpleText{color: purple}". Donc, pour la première feuille de style, la commande entière serait document.styleSheets[0].ownerNode.sheet.insertRule(".purpleText{color: purple}");

0
Redwolf Programs 12 avril 2018 à 16:20