Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Grâce à la version 2 de SVG la création d'images vectorielles statiques ou animées est beaucoup plus simple.
La compatibilité entre SVG et CSS sera considérablement accrue.
Les navigateurs les plus utilisés (Chrome, Edge & Firefox) commencent enfin à implémenter SVG2.
Les navigateurs récents autorisent désormais l'application de filtres CSS à des éléments SVG.
Or la définition des filtres en CSS est beaucoup plus simple qu'en SVG.
Il s'agit donc d'une remarquable avancée en matière de programmation web.
Je vous montre ci-dessous que les mêmes définitions de filtres (basées sur la syntaxe CSS) peuvent s'appliquer non seulement à des éléments HTML mais aussi à des éléments SVG de la page web.
Ci-dessous trois éléments HTML et trois objets SVG auxquels j'ai appliqué les mêmes filtres définis en CSS.
La première image (élément HTML) et le premier rectangle (objet SVG) sont floutés.
La deuxième image et le deuxième rectangle sont ombrés.
La troisième image et le troisième rectangle sont floutés et ombrés.
.flou1 {filter : blur(6px);}
.ombrage1{filter : drop-shadow(10px 10px 10px gray) }
.composite1 {filter : blur(4px) drop-shadow(10px 10px 10px gray); }
Les classes correspondent à des filtres définis avec la syntaxe CSS.
Le troisième filtre est composite : flou et ombrage.
Un document SVG peut comporter une feuille de style avec la définition de filtres selon la syntaxe CSS. Ces filtres peuvent s'appliquer aux objets SVG de ce document.
Notez la feuille de style interne dans ce document SVG.
Cette feuille de style comprend trois filtres.
Le canevas dessine trois rectangles avec des coins arrondis.
Il est quand même utile de connaitre la syntaxe des filtres SVG car les éditeurs WYSIWYG tels Inkscape et Boxy SVG
génèrent des filtres selon cette syntaxe.
Sachez par ailleurs qu'il y a réciprocité : un filtre défini en SVG peut s'appliquer aussi à un élément HTML.
Cette situation était fréquente par le passé puisque la norme CSS2 ignorait encore les filtres.
Dans la version 1, les paramètres géométriques (qui précisent la taille et la position) ne peuvent être passés qu'en attributs.
Avec la version 2 tous les paramètres géométriques d'un objet peuvent être contrôlés par le CSS (être passés en propriétés).
En juin 2026 les navigateurs Chrome, Edge et FireFox ont implémenté cette nouveauté SVG2 mais pas Safari.
Ne fonctionne pas encore sous Safari.
.ellipse {cx : 200px ; cy : 200px ; rx : 150px ; ry : 75px ; }
Tous les paramètres géométriques de l'ellipse sont contrôlés via la classe CSS "ellipse".
Ne fonctionne pas encore sous Safari.
Notez que le cercle est identifié "rond".
@keyframes animer
{
0% {fill-opacity:0.1; r : 10px;}
50% {fill-opacity :1 ; r: 200px ;}
100% {fill-opacity:0.1; r : 10px; }
}
#rond {animation : animer 20s 0s infinite linear;}
Via le 'keyframes' j'anime l'opacité (un paramètre de style) et le rayon (un paramètre géométrique) de l'objet SVG.
Donc dès que le navigateur Safari aura implémenté la version 2 de SVG, le SMIL (avec ses balises animate, animateMotion, ...)
sera une technologie obsolète.
Par défaut, le remplissage est peint avant le contour, qui lui-même est peint avant les marqueurs.
Cette séquence peut créer des effets indésirables : par exemple, un contour épais peut masquer partiellement le remplissage ou les marqueurs.
Le paramètre paint-order permet de modifier cet ordre afin d’obtenir le rendu visuel souhaité sans changer les valeurs des
propriété fill, stroke, marker.
Les lettres sont en dessinées uniquement en noir ; pas de vert ...
Les lettres ont cette fois un fond vert avec un contour noir.
Il suffit donc d'insérer dans l'élément text l'attribut paint-order="stroke fill" : le contour est peint avant le remplissage.
L'attribut xlink:href devient tout simplement href.
Par ailleurs l'attribut xmlns:xlink="http://www.w3.org/1999/xlink" dans l'élément SVG devient inutile !
Insertion par erreur d'un élément HTML dans le code SVG (balise img) ; cette instruction est ignorée. Voir le paragraphe suivant.
Un espace de nom a disparu.
l'attribut de chaque élément image est simplement href.
L'image n'apparait que deux fois ...
Insertion du document SVG avec l'élément object compte tenu de la complexité du code SVG : lien vers des ressources externes.
Le SVG est un format XML ; il doit donc être bien‑formé pour être accepté par les navigateurs.
Toutefois, les implémentations modernes sont un peu plus indulgentes que le strict standard XML.
Dans la définition d'un marqueur les attributs fill & stroke peuvent prendre la valeur "context-stroke" ou "fill-stroke" afin que le marqueur hérite de la couleur de trait ou de la couleur de remplissage de son élément de contexte.
Pour le chemin en rouge, les traits des marqueurs sont en rouge ; pour le chemin en vert ils sont verts et pour le chemin en bleu ils sont bleus?
Dans la règle de style notez l'utilisation du raccourci marker qui remplace marker-start, marker-mid, marker-end.
Notez que la valeur de l'attribut stroke dans la balise circle (enfant de marker) est "context-stroke" ;
ainsi chaque marqueur adopte pour son contour la couleur du chemin dont il dépend.
Notez aussi que ce SVG interne a une structure identique à un document SVG : feuille de style à l'intérieur du conteneur SVG.
Pour le chemin en rouge, les marqueurs sont remplis de rouge ; pour le chemin en vert ils sont verts et pour le chemin en bleu ils sont remplis de bleus.
Code identique à l'exemple précédent sauf ...
La valeur de l'attribut fill dans la balise circle (enfant de marker) est "context-stroke" ; ainsi chaque marqueur adopte pour son remplissage la couleur du chemin dont il dépend.
Visitez aussi : animation d'objets SVG via CSS