


Comment obtenir toutes les propriétés personnalisées sur une page en javascript
Cet article décrit comment utiliser JavaScript pour obtenir des valeurs de propriété personnalisées CSS et créer un exemple de palette généré automatiquement. Nous savons que vous pouvez utiliser getComputedStyle
et getPropertyValue
pour accéder à une seule propriété personnalisée, mais s'il existe plusieurs propriétés, vous devrez écrire beaucoup de code en double. Cet article montrera comment automatiser ce processus.
Supposons que nous ayons déclaré plusieurs propriétés personnalisées sur l'élément HTML:
html { --Color-Accent: # 00EB9B; --Color-Accent-Secondary: # 9DB4FF; --Color-Accent-tertiaire: # F2C0EA; --Color-Text: # 292929; --Color-divider: # d7d7d7; }
Nous pouvons obtenir automatiquement toutes les propriétés personnalisées et générer une palette via les étapes suivantes:
Obtenez tous les feuilles de style: utilisez
document.styleSheets
pour obtenir tous les feuilles de style (intérieure et extérieure) sur la page.-
Filtre des feuilles de styles tiers: pour des raisons de sécurité, seuls les feuilles de style sur le domaine actuel sont traitées. Nous utilisons la fonction
isSameDomain
pour filtrer leshets de style tiers:const issameDomain = (Stylesheet) => { if (! Stylesheet.href) retourne true; return stylesheet.href.indexof (window.location.origin) === 0; };
Copier après la connexion Obtenez toutes les règles de style: utilisez des méthodes
reduce
etconcat
pour fusionner toutes les règles de style dans un tableau.-
Règles de style de style non-base filtrant: seules les règles de type
CSSStyleRule
sont conservées et d'autres types de règles (tels queCSSMediaRule
). Utilisez la fonctionisStyleRule
pour filtrer:const isstylerule = (règle) => règle.type === 1;
Copier après la connexion Obtenez les noms et valeurs de tous les attributs: itérer via l'attribut
style
(objetCSSStyleDeclaration
) de chaque règle de style et utilisezmap
pour obtenir les noms et valeurs de tous les attributs.Filtrez des attributs non personnalisés: seuls les attributs personnalisés en commençant par
--
sont conservés. Utilisez la méthodefilter
pour filtrer.Générer HTML: Utilisez la méthode
reduce
pour générer du code HTML en fonction des attributs et des valeurs personnalisés obtenus, et utilisez-le pour afficher la palette de couleurs. Nous utilisons<div> Les éléments sont utilisés comme échantillons de couleurs et définissent des couleurs à l'aide de styles en ligne. Le CSS externe utilise <code>var(--color)
pour définir la couleur d'arrière-plan.Le code final sera similaire à la structure suivante (voir le texte d'origine pour les détails d'implémentation spécifiques):
const getcsscustomPropIndex = () => [... document.stylesheets] . .reduce ((finalarr, feuille) => finalarr.concat ( [... sheet.cssrules] .filter (isstylerule) .reduce ((propvalarr, règle) => { const props = [... Rule.Style] .map ((propName) => [propName.trim (), règle.style.getPropertyValue (propName) .trim ()]) .Filter (([propName]) => propName.Indexof ("-") === 0); return [... propvalarr, ... accessoires]; }, []) ), []); const csscustomPropIndex = getcsscustomPropIndex (); document.QuerySelect (str, [prop, val]) => `$ {str}<div class="color__swatch" style="--color: ${val};"></div> `," ");
Copier après la connexionCette méthode génère automatiquement une palette de couleurs qui affiche toutes les propriétés personnalisées CSS sans avoir à écrire beaucoup de code manuellement. À l'avenir, vous pouvez utiliser la propriété
CSSStyleRule.styleMap
dans CSS Typted Object Model Level 1 Braft pour simplifier le code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

Questions sur les zones de slash violet dans les dispositions flexibles Lorsque vous utilisez des dispositions flexibles, vous pouvez rencontrer des phénomènes déroutants, comme dans les outils du développeur (D ...

CSS Grid est une collection de propriétés conçues pour faciliter la mise en page qu'elle ne l'a jamais été. Comme tout, il y a un peu une courbe d'apprentissage, mais Grid est
