Dans environ la moitié des exemples de svg que je vois sur Internet, le code est enveloppé dans un langage simple et simple <svg></svg>
Mots clés.
Dans l'autre moitié, les tags svg ont beaucoup d'attributs compliqués comme ceci:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
Ma question est la suivante: puis-je utiliser les balises svg simples? J'ai essayé de jouer avec les plus compliquées, et tout fonctionne bien si je ne les inclus pas.
Tous les agents utilisateurs (navigateurs) ignorent l'attribut de version, vous pouvez donc toujours le supprimer.
Si vous incorporez votre fichier SVG en ligne dans une page HTML et que vous le communiquez sous la forme text/html
_ alors les attributs xmlns ne sont pas obligatoires . L'intégration de SVG en ligne dans des documents HTML est une innovation relativement récente intégrée à HTML5.
Si toutefois vous présentez votre page sous la forme image/svg + xml ou application/xhtml + xml ou tout autre type MIME obligeant l'agent utilisateur à utiliser un analyseur XML, alors les attributs xmlns sont obligatoires . C'était la seule façon de faire les choses jusqu'à récemment donc il y a beaucoup de contenu servi comme ça.
Le xmlns="http://www.w3.org/2000/svg"
attribut est:
<svg>
. 2Le xmlns:xlink="http://www.w3.org/1999/xlink"
attribut est:
<svg>
avec xlink: attributs. 2Le version="1.1"
attribut est:
1 identificateurs de ressource internationalisés (RFC3987)
2 depuis HTML5
3 Langage de balisage extensible (XML) 1.
4 Probablement jusqu'à la sortie d'autres versions majeures.
5 SVG 2, Recommandation du candidat au W3C du 07 Août 2018
J'aimerais ajouter aux deux réponses, mais je n'ai pas de points, j'ajoute une nouvelle réponse. Lors de tests récents sur Chrome (version 63.0.3239.132 (version officielle) (Windows 64 bits))), j'ai constaté que:
xhr.responseText
Et Elm.innerHTML
. Cela ne nécessite pas les xmlns.xhr.responseXML.documentElement
Et Elm.appendChild()
ou Elm.insertBefore()
. Cette méthode de création du fichier SVG intégré génère des résultats à moitié cuits sans que l'espace de nom SVG de base soit déclaré, comme dans xmlns="http://www.w3.org/2000/svg"
. <Svg> est chargé dans le code HTML, mais les fonctions au niveau du document, telles que getElementById()
, ne sont pas reconnues sur l'élément <svg>. Je suppose que c'est parce qu'il utilise l'analyseur XML XMLHttpRequest en dehors du code HTML.