Appliquer le style CSS de façon dynamique avec JavaScript
Ce qui est un bon moyen pour appliquer un style de manière dynamique (c'est à dire la valeur de styles sont créés au moment de l'exécution) à des éléments HTML avec du JavaScript?
Je suis à la recherche d'un moyen pour l'emballage d'un widget JavaScript (JS, CSS et balisage) dans un seul composant (en gros, un objet). L'idée serait pour le composant pour encapsuler style (de sorte que les utilisateurs ont une bonne API pour modifier la place de plus étroitement associée démarche de modifier le CSS directement et avoir des changements appliqués de manière indirecte). Le problème est qu'un seul appel d'API peut impliquer des changements à plusieurs éléments de style.
La façon dont je voudrais faire est de construire le CSS et le jeu de lastyle
atrribute au bon éléments (le plus probable à l'aide de l'ID d'éviter d'appliquer des modifications à d'autres domaines de la majoration). Est-ce une bonne solution? Est-il un meilleur moyen de le faire?
OriginalL'auteur Juan Carlos Coto | 2016-02-25
Vous devez vous connecter pour publier un commentaire.
À L'Aide De Jquery
Utiliser le css() pour appliquer un style aux éléments existants où l'on passe d'un objet contenant des styles :
Vous pouvez également appliquer un style à la fois avec :
Vanille JS :
Avec Css :
Vous pouvez également utiliser un fichier css contenant les différents styles à l'intérieur des classes, et selon le contexte de l'ajout ou de suppression de ces classes de vos éléments.
dans votre fichier css, vous pouvez avoir des classes comme
De nouveau à l'aide de jquery, pour ajouter ou supprimer une classe à un élément, vous pouvez utiliser
ou
Je pense que c'est une manière plus propre qu'il sépare de votre style dans votre logique. Mais si les valeurs de votre css dépend de ce qui est renvoyé par le serveur, cette solution pourrait être difficile à appliquer.
OriginalL'auteur kerwan
La façon dont je voudrais faire est de construire le CSS et définissez l'attribut style pour les éléments nécessaires. Par exemple:
Ce code va créer un nouvel élément div avec le style
color: blue, margin-top:5px
et l'ajouter à la page.Je préfère utiliser le
style
propriété de l'Élément DOM au lieu de lasetAttribute()
, quelque chose comme:div.style = 'color: blue, margin-top:5px'
N'est-ce pas tout de même?
OP c'est "Est-ce une bonne solution? Est-il un meilleur moyen de le faire?" pas comment ajouter de style en ligne.
Mozilla états "Paramètre de style de Noter que les styles ne doit PAS être définie par l'affectation d'une chaîne directement à la propriété de style (comme dans l'elt.style = "color: blue;" ), car il est considéré comme étant en lecture seule, car l'attribut style renvoie un objet CSSStyleDeclaration qui est également en lecture seule." -developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style
OriginalL'auteur Dean Meehan
À l'aide de Vanille JS vous pourriez faire quelque chose comme cela.
Si vous souhaitez ajouter un classe CSS nommé animer à un élément avec l'Id cercle, faites comme ceci.
Vous pouvez supprimer la classe comme ça.
OriginalL'auteur Rahul Gul
J'ai peut être mal interprété votre question, mais il semble que vous demandez pour un simple modèle d'architecture. Vous voulez quelque chose qui rend plus facile pour quelqu'un qui est à l'aide de votre widget de changer leurs spécifications?
Si c'est le cas, alors je ne connais pas de modèle spécifique pour le faire sans l'aide de CSS.
Je peux vous dire que les "widgets" que j'ai trouvé plus facile d'utiliser les deux fichiers CSS. Je trouve qu'il est assez simple de les modifier à mes besoins. Je pense que c'est parce que la structure de l'aide de CSS, le HTML et le Javascript est déjà une belle, simple modèle. Je ne sais pas de qui il n'y a rien de mieux, surtout en considérant que les gens sont déjà très familier avec le HTML/CSS relation.
Je pense que vous voulez utiliser .attr('style', '...') ou .css('width, etc', '0px,etc..").
OriginalL'auteur Chris Dutrow
Puisque vous avez également demandé si il ya une meilleure façon et vous la construction d'un composant, d'une meilleure façon que je recommande est pour vous de construire un tel composant avec frontend javascript cadre parce qu'ils font de manière dynamique des styles très facile hors de la boîte
prenons un exemple de Vuejs, Reactjs
OriginalL'auteur Matovu Ronald