Recherche…


Remarques

Scalable Vector Graphics (SVG) est un standard W3C pour dessiner des images vectorielles.

Voici un simple fichier SVG autonome:

<svg xmlns="http://www.w3.org/2000/svg">
    <circle cx="50" cy="50" r="25" fill="blue"/>
</svg>

SVG peut également être intégré en HTML, auquel cas l'attribut xmlns n'est pas requis.

Les autres éléments graphiques sont:

  • <line>
  • <ellipse>
  • <path>
  • <polygon> et <polyline>
  • <text> incluant des éléments enfants tels que <tspan> et <textPath>

CSS est utilisé pour le style, bien que toutes les propriétés CSS ne s'appliquent pas à SVG et que SVG lui-même définisse des propriétés spécifiques telles que le fill et le stroke qui ne sont pas utilisés ailleurs.

Les formes peuvent être remplies de dégradés ou de motifs et des effets de raster supplémentaires peuvent être obtenus à l'aide de filtres.

Le découpage est disponible en utilisant les éléments graphiques ci-dessus en tant que chemins de clips.

Concernant les versions du standard SVG W3C:

Versions

Version Date de sortie
1.0 2001-09-04
1.1 Première édition 2003-01-14
1.2 minuscule 2008-12-22
1.1 Deuxième édition 2011-08-16

SVG en ligne

Inline SVG permet au balisage SVG, écrit en HTML, de générer des graphiques dans le navigateur.

Lorsque vous utilisez SVG inline, un DOCTYPE n'est pas strictement requis. Au lieu de cela, les balises d'ouverture et de fermeture <svg> associées aux attributs viewBox ou width et height, suffiront:

<svg width="100%" height="100%">
    <!-- SVG elements go here -->
</svg>

Le fragment <svg> ci-dessus agit à la fois comme un conteneur et un élément structurel. Ce fragment établit son propre système de coordonnées.

Voici un exemple de rendu d'un fragment SVG avec un certain contenu. Il produira un rectangle avec "Hello World!" texte en son sein.

<svg width="50%" viewBox="0 0 10 10">
    <rect x="1" y="1" width="5" height="3" fill="teal" />
    <text x="2" y="2" font-family="Palatino, Georgia, serif" font-size="3%" font-weight="bold" fill="white">Hello World!</text>
</svg>

Résultat:

Exemple simple de sortie SVG

SVG en tant que

Vous pouvez rendre le contenu d'un fichier SVG sous forme d'image dans un document HTML en utilisant une <img> . Par exemple:

<img src="my_svg_file.svg" alt="Image description">

Les dimensions de l'image seront, par défaut, affichées en fonction des propriétés de largeur et de hauteur spécifiées dans le fichier SVG référencé dans l'attribut src .

Il convient de noter les différentes limitations inhérentes à cette approche:

  • La prise en charge du navigateur, bien que bonne, n'inclut pas Internet Explorer 8 et les versions antérieures, ni Android 2.3 ni les versions antérieures.
  • Vous ne pouvez pas styler les éléments individuels contenus dans le fichier SVG en utilisant CSS qui est externe au fichier SVG. Tout le CSS doit être dans le fichier image lui-même.
  • JavaScript ne fonctionnera pas
  • L'image doit être complète dans un seul fichier. Par exemple, si le fichier SVG contient des images raster, ces images internes doivent être codées en tant qu’URL de données.

SVG comme image de fond

Vous pouvez afficher un fichier SVG dans un document HTML en le spécifiant en tant qu'image d'arrière-plan dans CSS. Par exemple:

.element {
    background-size: 100px 100px;
    background: url(my_svg_file.svg);
    height: 100px;
    width: 100px;
}

Si les dimensions spécifiées dans votre fichier SVG sont supérieures aux dimensions de votre élément HTML, il peut être souhaitable de spécifier la propriété de background-size , pour adapter SVG à son élément.

Comme pour l'utilisation de SVG en tant que <img> , cette approche mérite quelques limitations:

  • La prise en charge du navigateur n'inclut pas Internet Explorer 8 et les versions antérieures, ni Android 2.3 ni les versions antérieures.
  • Vous ne pouvez pas styler les éléments individuels contenus dans le fichier SVG en utilisant CSS qui est externe au fichier SVG. Tout le CSS doit être dans le fichier image lui-même.


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow