インターネットで見たsvgの例の約半分では、コードは単純な<svg></svg>
タグでラップされています。
残りの半分では、svgタグには次のような多くの複雑な属性があります。
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
私の質問は、単純なsvgタグを使用しても大丈夫ですか?私は複雑なものをいじってみましたが、それらを含めなくてもすべてがうまくいきます。
すべてのユーザーエージェント(ブラウザ)はバージョン属性を無視するため、いつでも削除できます。
SVGをHTMLページにインラインで埋め込み、そのページをtext/html
として提供する場合、- xmlns属性は不要です 。 HTMLドキュメントにSVGをインラインに埋め込むことは、HTML5の一部として登場したごく最近の革新です。
ただし、ページをimage/svg + xmlまたはapplication/xhtml + xmlまたはユーザーエージェントがXMLパーサーを使用するようにする他のMIMEタイプとして提供する場合は、 xmlns属性 arerequired これは最近まで唯一の方法でしたので、このように多くのコンテンツが提供されています。
xmlns="http://www.w3.org/2000/svg"
属性は次のとおりです。
<svg>
。 2xmlns:xlink="http://www.w3.org/1999/xlink"
属性は次のとおりです。
<svg>
withxlink:属性。 2version="1.1"
属性は次のとおりです。
1 国際化リソース識別子(RFC3987)
2 HTML5以降
3 Extensible Markup Language(XML)1.
4 おそらく、さらなるメジャーバージョンがリリースされるまで。
5 SVG 2、W3C勧告候補、2018年8月7日
両方の回答に追加したいのですが、ポイントはありません。新しい回答を追加しています。 Chrome(バージョン63.0.3239.132(公式ビルド)(64ビットWindows))の最近のテストで、次のことがわかりました。
xhr.responseText
およびElm.innerHTML
を使用します。これにはxmlnsは必要ありません。xhr.responseXML.documentElement
およびElm.appendChild()
またはElm.insertBefore()
を使用します。インラインSVGを作成するこの方法は、xmlns="http://www.w3.org/2000/svg"
のように、基本的なSVG名前空間を宣言せずに、半ば焼きの結果を生成します。 <svg>はHTMLにロードされますが、getElementById()
などのドキュメントレベルの関数は<svg>要素では認識されません。これは、HTMLの外部でXMLHttpRequest XMLパーサーを使用しているためだと思います。