recherche
Maisoninterface Webtutoriel CSSComment j'ai fabriqué un système d'icônes à partir de propriétés personnalisées CSS

Créer des attributs personnalisés CSS dans le système d'icônes

SVG est sans aucun doute le meilleur format pour les icônes de site Web. Il fournit des icônes claires quelle que soit la densité des pixels d'écran;

Il existe de nombreuses façons d'inclure SVG dans une page Web, et chaque technologie a ses propres avantages et inconvénients. J'ai utilisé la fonction SASS pour importer des icônes directement dans mon CSS au cours des dernières années, en évitant de jouer avec mes balises HTML.

J'ai une liste SASS avec tout le code source de l'icône. Chaque icône est ensuite codée en tant que URI de données à l'aide de la fonction SASS et stockée dans une propriété personnalisée à la racine de la page.

en bref

Ce que je fournis ici est une fonction SASS qui crée une bibliothèque d'icônes SVG directement dans votre CSS.

Le code source SVG est compilé par la fonction SASS, qui les code en tant que URI de données, puis stocke l'icône dans une propriété CSS personnalisée. Vous pouvez ensuite utiliser n'importe quelle icône n'importe où dans votre CSS comme vous le feriez avec une image externe.

Ceci est un exemple extrait directement de mon code de site Web personnel:

<code>.c-filters__summary h2:after {
  content: var(--svg-down-arrow);
  position: relative;
  top: 2px;
  margin-left: auto;
  animation: closeSummary .25s ease-out;
}</code>

démo

Structure sass

 <code> / * Tous les icônes Code source * /
$ svg-icons: (
  burger: '& lt; svg data-line = "" scss = "" Viewbox = "0 ...'
));

/ * Icône de codage de fonction sass * /
@Function svg ($ name) {
  @return url ('data: image / svg xml, # {$ encodedSvg}');
}

/ * Stockez chaque icône dans une propriété personnalisée * /
:racine {
  @each $ name, $ code dans $ svg-icons {
    --svg - # {$ name}: # {svg ($ name)};
  }
}

/ * Ajouter l'icône du hamburger dans mon bouton * /
.Menu :: après {
  Contenu: var (- svg-burger);
}



<p> Cette technologie présente à la fois des avantages et des inconvénients, alors assurez-vous de considérer ces facteurs avant de mettre en œuvre cette solution dans votre projet: </p>


<h4 id="pros"> pros </h4>


<ul> <li> Aucune demande HTTP n'est requise pour les fichiers SVG. </li> <li> Toutes les icônes sont stockées en un seul endroit. </li> <li> Si vous avez besoin de mettre à jour l'icône, vous n'avez pas besoin de traverser chaque fichier de modèle HTML. Les icônes </li> <li> sont mises en cache avec CSS. </li> <li> Vous pouvez modifier manuellement le code source de l'icône. </li> <li> Il ne polluera pas votre HTML en ajoutant des balises supplémentaires. </li> <li> Vous pouvez toujours utiliser CSS pour modifier la couleur ou certains aspects de l'icône. </li> </ul>


<h4 id="Inconvénients"> Inconvénients </h4>


<ul> <li> Vous ne pouvez pas utiliser CSS pour ajouter une animation ou mettre à jour des parties spécifiques de SVG. </li> <li> Plus il y a d'icônes, plus le fichier CSS compilé est grand. </li> </ul>



<p> J'utilise principalement cette technique pour les icônes, pas les logos ou les illustrations. Le SVG codé est toujours plus grand que son fichier d'origine, donc j'utilise toujours <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174157496146935.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="How I Made an Icon System Out of CSS Custom Properties "> </p></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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Quelle est la spécificité de @rules, comme @keyframes et @media?Quelle est la spécificité de @rules, comme @keyframes et @media?Apr 18, 2025 am 11:34 AM

J'ai eu cette question l'autre jour. Ma première pensée est: une question étrange! La spécificité concerne les sélecteurs, et les rubriques ne sont pas des sélecteurs, donc ... non pertinents?

Pouvez-vous nist @media et @Support Queries?Pouvez-vous nist @media et @Support Queries?Apr 18, 2025 am 11:32 AM

Oui, vous le pouvez, et cela n'a pas vraiment d'importance dans quel ordre. Un préprocesseur CSS n'est pas requis. Il fonctionne dans CSS ordinaire.

Buste de cache de gorgée rapideBuste de cache de gorgée rapideApr 18, 2025 am 11:23 AM

Vous devriez à coup sûr définir des en-têtes de cache éloignés sur vos actifs comme CSS et JavaScript (et des images et polices et quoi que ce soit d'autre). Cela dit au navigateur

À la recherche d'une pile qui surveille la qualité et la complexité de CSSÀ la recherche d'une pile qui surveille la qualité et la complexité de CSSApr 18, 2025 am 11:22 AM

De nombreux développeurs écrivent sur la façon de maintenir une base de code CSS, mais peu d'entre eux écrivent sur la façon dont ils mesurent la qualité de cette base de code. Bien sûr, nous avons

Le datalist est destiné à suggérer des valeurs sans appliquer de valeursLe datalist est destiné à suggérer des valeurs sans appliquer de valeursApr 18, 2025 am 11:08 AM

Avez-vous déjà eu un formulaire qui devait accepter un petit texte arbitraire? Comme un nom ou autre chose. C'est exactement à quoi sert. Il y a beaucoup de

Conférence avant à ZurichConférence avant à ZurichApr 18, 2025 am 11:03 AM

Je suis tellement excité de me diriger vers Zurich, en Suisse pour la conférence de Front (j'adore ce nom et URL!). Je n'ai jamais été en Suisse auparavant, donc je suis excité

Construire une application sans serveur complète avec des travailleurs CloudFlareConstruire une application sans serveur complète avec des travailleurs CloudFlareApr 18, 2025 am 10:58 AM

L'un de mes développements préférés dans le développement de logiciels a été l'avènement de Serverless. En tant que développeur qui a tendance à s'enliser dans les détails

Création de routes dynamiques dans une application NuxtCréation de routes dynamiques dans une application NuxtApr 18, 2025 am 10:53 AM

Dans cet article, nous utiliserons une démo de magasin de commerce électronique que j'ai construit et déployé sur Netlify pour montrer comment nous pouvons faire des itinéraires dynamiques pour les données entrantes. C'est assez

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel