recherche
Maisoninterface Webtutoriel CSSComment ajouter une double bordure aux formes SVG

Comment ajouter une double bordure aux formes SVG

Disons que quelqu'un vous demande d'ajouter une double bordure à quelques formes SVG géométriques aléatoires. Pour une raison quelconque, vous ne pouvez utiliser aucun éditeur graphique - ils doivent être générés à l'exécution - vous devez donc le résoudre avec CSS ou dans la syntaxe SVG.

Votre première question pourrait être: y a-t-il quelque chose comme le style des AVC: double en SVG? Eh bien, la réponse n'est pas encore et ce n'est pas si simple. Mais je vais quand même essayer de voir quelles méthodes je peux découvrir. Je vais explorer les possibilités de trois formes de base différentes: cercle, rectangle et polygone. Poignant ceux qui peuvent garder une couleur transparente au milieu des deux lignes.

Alerte de spoiler: tous les résultats ont leurs inconvénients, au moins avec CSS et SVG, mais permettez-moi de vous guider à travers mes intentions.

Les solutions simples

Ceux-ci ne fonctionnent pas avec toutes les formes, mais ils sont les plus faciles des solutions.

contour et box-shadow

Les versions CSS et le shadow de la boîte ne s'appliquent qu'à la boîte de délimitation de la forme ou du SVG, et donc les deux sont d'excellentes solutions uniquement pour les carrés et les rectangles . Ils permettent également des couleurs flexibles en utilisant des propriétés personnalisées.

Il ne faut que deux lignes de CSS avec un contour, et il maintient la couleur d'arrière-plan visible à travers la forme.

  • ? Solution uniquement pour une seule forme.
  • ✅ Code simple
  • ✅ Les bordures sont lisses
  • ✅ Contexte transparent

Box-Shadow n'a besoin que d'une seule ligne de CSS, mais nous devons nous assurer que chaque forme a son propre SVG car nous ne pouvons pas appliquer Box-Shadow directement sur les formes. Une autre chose à considérer est que nous devons appliquer la couleur de l'arrière-plan de la déclaration.

  • ? Solution uniquement pour une seule forme
  • ✅ Code simple
  • ✅ Les bordures sont lisses
  • ? Aucun arrière-plan transparent

Gradients SVG

Les gradients radiaux SVG ne fonctionnent que sur les cercles ☺️. Nous pouvons appliquer directement le gradient sur la course, mais il est préférable d'utiliser des variables car nous devons déclarer les couleurs plusieurs fois dans le code.

  • ? Solution uniquement pour une seule forme
  • ✅ Code simple
  • ? Les bordures sont lisses
  • ? Aucun arrière-plan transparent

Solutions pour toutes les formes

Ceux-ci fonctionneront avec toutes les formes, mais le code pourrait devenir gonflé ou complexe.

Filtre: Drop-Shadow ()

Enfin, une solution pour toutes les formes! Nous devons avoir chaque forme dans sa propre car le filtre ne s'applique pas directement aux formes. Nous utilisons une déclaration dans CSS et avons des couleurs flexibles en utilisant des variables. L'inconvénient? Les frontières ne sont pas très lisses.

  • ✅ Une solution pour toutes les formes
  • ✅ Code simple
  • ? Les bordures ont l'air pixélisées
  • ? Aucun arrière-plan transparent

Filtres SVG

Il s'agit d'une solution très flexible. Nous pouvons créer un filtre et l'ajouter aux formes via l'attribut de filtre de SVG. La partie compliquée ici est le filtre lui-même. Nous aurons besoin de trois peintures, une pour la bordure extérieure, une pour l'inondation de fond et la dernière pour peindre la forme sur le devant. Le résultat semble mieux que d'utiliser Drop Shadow, mais les bordures sont toujours pixelisées.

  • ✅ Une solution pour toutes les formes
  • ? Code complexe
  • ? Les bordures ont l'air pixélisées
  • ? Aucun arrière-plan transparent

Formes de réutilisation

Il y a quelques options possibles ici.

Option 1: Transforme

Cette solution nécessite des transformations. Nous plaçons une figure sur l'autre, où la figure principale a une couleur de remplissage et une couleur de course, et l'autre figure n'a pas de remplissage, un coup rouge et est à l'échelle et repositionnée au centre. Nous avons défini nos formes sur les . L'astuce consiste à traduire la moitié de la boîte de vue vers l'espace négatif afin que, lorsque nous les évoluons, nous pouvons le faire depuis le centre de la figure.

  • ✅ Une solution pour toutes les formes
  • ? Code dupliqué
  • ✅ Les bordures sont lisses
  • ✅ Contexte transparent
Option 2:

J'ai trouvé une solution intelligente dans la liste de diffusion WWW-SVG par Doug Schepers qui utilise SVG . Encore une fois, cela nécessite de définir les formes une fois et de les référer deux fois à l'aide de . Cette fois, la forme principale a un coup plus important. La deuxième formehashalfthestroke de la forme principale, pas de remplissage et un coup de trait correspondant à la couleur d'arrière-plan.

  • ✅ Une solution pour toutes les formes
  • ? Code dupliqué
  • ✅ Les bordures sont lisses
  • ? Aucun arrière-plan transparent

Voici les résultats complets!

Juste pour que vous les ayez tous au même endroit. Faites-moi savoir que vous pouvez penser à d'autres solutions possibles!

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
Travailler avec GraphQL CachingTravailler avec GraphQL CachingMar 19, 2025 am 09:36 AM

Si vous avez récemment commencé à travailler avec GraphQL ou examiné ses avantages et ses inconvénients, vous avez sans aucun doute entendu des choses comme "GraphQL ne prend pas en charge la mise en cache" ou

Barbars CSS personnalisés chics et cool: une vitrineBarbars CSS personnalisés chics et cool: une vitrineMar 10, 2025 am 11:37 AM

Dans cet article, nous plongerons dans le monde des barres de défilement. Je sais, ça ne semble pas trop glamour, mais croyez-moi, une page bien conçue va de pair

Faire votre première transition Svelte personnaliséeFaire votre première transition Svelte personnaliséeMar 15, 2025 am 11:08 AM

L'API de transition Svelte fournit un moyen d'animer les composants lorsqu'ils entrent ou quittent le document, y compris les transitions Svelte personnalisées.

Show, ne dit pasShow, ne dit pasMar 16, 2025 am 11:49 AM

Combien de temps passez-vous à concevoir la présentation de contenu pour vos sites Web? Lorsque vous écrivez un nouveau blog ou créez une nouvelle page, pensez-vous à

Construire une application Ethereum à l'aide de Redwood.js et de la fauneConstruire une application Ethereum à l'aide de Redwood.js et de la fauneMar 28, 2025 am 09:18 AM

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Que diable sont les commandes NPM?Que diable sont les commandes NPM?Mar 15, 2025 am 11:36 AM

Les commandes NPM exécutent diverses tâches pour vous, soit en tant que processus unique ou en cours d'exécution pour des choses comme le démarrage d'un serveur ou la compilation de code.

Utilisons (x, x, x, x) pour parler de spécificitéUtilisons (x, x, x, x) pour parler de spécificitéMar 24, 2025 am 10:37 AM

Je discutais avec Eric Meyer l'autre jour et je me suis souvenu d'une histoire d'Eric Meyer de mes années de formation. J'ai écrit un article de blog sur la spécificité CSS, et

Comment utilisez-vous CSS pour créer des effets de texte, tels que des ombres de texte et des gradients?Comment utilisez-vous CSS pour créer des effets de texte, tels que des ombres de texte et des gradients?Mar 14, 2025 am 11:10 AM

L'article discute de l'utilisation de CSS pour les effets de texte comme les ombres et les gradients, les optimiser pour les performances et l'amélioration de l'expérience utilisateur. Il répertorie également les ressources pour les débutants (159 caractères)

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)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 version anglaise

SublimeText3 version anglaise

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

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

SublimeText3 version Mac

SublimeText3 version Mac

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

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux