In ungefähr der Hälfte der SVG-Beispiele, die ich im Internet sehe, ist der Code in einfache <svg></svg>
Tags eingeschlossen.
In der anderen Hälfte haben die SVG-Tags viele komplizierte Attribute wie diese:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
Meine Frage ist: Ist es in Ordnung, die einfachen SVG-Tags zu verwenden? Ich habe versucht, mit den komplizierten herumzuspielen, und am Ende funktioniert alles gut, wenn ich sie nicht einbeziehe.
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">
, aber wenn ich die XML-Dateien wegnehme oder in sie ändere,<!DOCTYPE svg xmlns="www.example.com">
funktioniert es nicht. Warum ist das so?Das
xmlns="http://www.w3.org/2000/svg"
Attribut lautet:<svg>
. 2Das
xmlns:xlink="http://www.w3.org/1999/xlink"
Attribut lautet:<svg>
mit xlink: -Attributen. 2Das
version="1.1"
Attribut lautet:1 Internationalisierte Ressourcenkennungen (RFC3987)
2 Seit HTML5
3 Extensible Markup Language (XML) 1.0
4 Wahrscheinlich bis zur Veröffentlichung weiterer Hauptversionen.
5 SVG 2, W3C-Kandidatenempfehlung, 7. August 2018
quelle
version
Attribut der XML-Deklaration (<?xml version...
) nicht mit demversion
Attribut des<svg>
Elements. Die erste betrifft die Version der XML-Markup-Sprache, während die zweite die Version von SVG angibt. Der Autor dieser Antwort machte diesen Fehler, indem er sich auf das XML bezog, nicht auf die SVG-Spezifikation in ³. Ich habe versucht, es zu korrigieren, aber einige Idioten haben die Bearbeitung abgelehnt.Ich möchte beide Antworten ergänzen, aber ich habe keine Punkte, ich füge eine neue Antwort hinzu. Bei kürzlich durchgeführten Tests unter Chrome (Version 63.0.3239.132 (Official Build) (64-Bit-Windows)) habe ich Folgendes festgestellt:
xhr.responseText
undelm.innerHTML
. Dies erfordert keine xmlns.xhr.responseXML.documentElement
undelm.appendChild()
oderelm.insertBefore()
. Diese Methode zum Erstellen des Inline-SVG führt zu halbgebackenen Ergebnissen, ohne dass der grundlegende SVG-Namespace wie in deklariert wirdxmlns="http://www.w3.org/2000/svg"
. Das <svg> wird in den HTML-Code geladen, aber Funktionen auf Dokumentebene, wiegetElementById()
sie im <svg> -Element nicht erkannt werden. Ich gehe davon aus, dass dies daran liegt, dass der XMLHttpRequest-XML-Parser außerhalb des HTML-Codes verwendet wird.quelle
Über das SVG-Versionsattribut sagt das MDN WebDoc
PS: Das SVG 2 ist noch lange kein Standard.
quelle