W około połowie przykładów SVG, które widzę w Internecie, kod jest zawinięty w proste, proste <svg></svg>
tagi.
W drugiej połowie tagi svg mają wiele skomplikowanych atrybutów:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
Moje pytanie brzmi: czy można używać prostych tagów svg? Próbowałem bawić się skomplikowanymi i wszystko działa dobrze, jeśli ich nie uwzględnię.
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">
że działa, ale jeśli zabiorę xmlns lub zmienię na<!DOCTYPE svg xmlns="www.example.com">
to, to nie działa. Dlaczego?xmlns="http://www.w3.org/2000/svg"
Atrybutem jest:<svg>
. 2)xmlns:xlink="http://www.w3.org/1999/xlink"
Atrybutem jest:<svg>
z XLink: atrybuty. 2)version="1.1"
Atrybutem jest:1 Międzynarodowe identyfikatory zasobów (RFC3987)
2 Od HTML5
3 Extensible Markup Language (XML) 1.0
4 Prawdopodobnie do czasu wydania kolejnych głównych wersji.
5 SVG 2, Rekomendacja dla kandydatów W3C, 7 sierpnia 2018 r
źródło
version
atrybutu deklaracji xml (<?xml version...
) zversion
atrybutem<svg>
elementu. Pierwszy dotyczy wersji języka znaczników XML, podczas gdy drugi określa wersję SVG. Autor tej odpowiedzi popełnił ten błąd, odwołując się do XML, a nie specyfikacji SVG w ³. Próbowałem to poprawić, ale niektórzy idioci odrzucili edycję.Chciałbym dodać do obu odpowiedzi, ale nie mam punktów, dodaję nową odpowiedź. W ostatnich testach w Chrome (wersja 63.0.3239.132 (oficjalna wersja) (64-bitowy system Windows)) stwierdziłem, że:
xhr.responseText
ielm.innerHTML
. To nie wymaga xmlns.xhr.responseXML.documentElement
ielm.appendChild()
lubelm.insertBefore()
. Ta metoda tworzenia wbudowanego pliku SVG daje wyniki w połowie wypalone bez zadeklarowania podstawowej przestrzeni nazw SVG, jak wxmlns="http://www.w3.org/2000/svg"
. <svg> ładuje się do HTML, ale funkcje na poziomie dokumentu, takie jakgetElementById()
nie są rozpoznawane w elemencie <svg>. Zakładam, że dzieje się tak, ponieważ używa on parsera XMLHttpRequest poza HTML.źródło
O atrybucie wersji SVG mówi MDD WebDoc
PS: SVG 2 nie jest jeszcze standardem.
źródło