인터넷에서 볼 수있는 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 속성 이 필요합니다 . 이것은 최근까지만 할 수있는 유일한 방법이므로 이와 같은 많은 콘텐츠가 제공됩니다.
답변
xmlns="http://www.w3.org/2000/svg"
속성은 다음과 같습니다
- 필요 에 대한 이미지 / SVG + XML의 파일입니다. 1
- 인라인 옵션 입니다
<svg>
. 2
xmlns:xlink="http://www.w3.org/1999/xlink"
속성은 다음과 같습니다
- 필요 에 대한 이미지 / SVG + XML을 가진 파일 인 XLink : 속성. 1
- 옵션 에 대한 인라인
<svg>
으로 되는 XLink : 속성. 2
version="1.1"
속성은 다음과 같습니다
- 권장 사항 을 준수하는 이미지 / SVG + XML의 파일을 표준. 삼
- 모든 사용자 에이전트에 의해 무시 됩니다. 4
- SVG 2에서 제거 되었습니다. 5
1 국제화 된 자원 식별자 (RFC3987)
2 HTML5 이후
3 XML (Extensible Markup Language) 1.0
4 추가 메이저 버전이 출시 될 때까지.
5 SVG 2, W3C 후보 추천, 2018 년 8 월 7 일
답변
두 답변에 모두 추가하고 싶지만 포인트가 없으며 새로운 답변을 추가하고 있습니다. Chrome (버전 63.0.3239.132 (공식 빌드) (64 비트 Windows))에 대한 최근 테스트에서 다음을 발견했습니다.
- 텍스트 편집기 나 javascript 및 elm.innerHTML을 통해 HTML 파일에 직접 입력 된 인라인 SVG의 경우 다른 두 가지 답변에서 설명한대로 xmlns 속성이 필요하지 않습니다.
- 그러나 자바 스크립트와 AJAX를 통해로드되는 인라인 SVG에는 두 가지 옵션이 있습니다.
xhr.responseText
및을 사용하십시오elm.innerHTML
. xmlns가 필요하지 않습니다.- 사용
xhr.responseXML.documentElement
및elm.appendChild()
나elm.insertBefore()
. 인라인 SVG를 생성하는이 방법은에서와 같이 기본 SVG 네임 스페이스를 선언하지 않고 반 베이크 결과를 생성합니다xmlns="http://www.w3.org/2000/svg"
. <svg>는 HTML로로드되지만getElementById()
<svg> 요소에서 인식되지 않는 등의 문서 수준 함수 입니다. HTML 외부에서 XMLHttpRequest XML 파서를 사용하기 때문이라고 가정합니다.
답변
MDN WebDoc 은 SVG 버전 속성에 대해
SVG 2부터 사용되지 않음
이 기능은 더 이상 권장되지 않습니다. 일부 브라우저는 여전히이를 지원할 수 있지만 관련 웹 표준에서 이미 제거되었거나 삭제 중이거나 호환성 목적으로 만 유지 될 수 있습니다. 사용하지 말고 가능한 경우 기존 코드를 업데이트하십시오. 결정을 안내하려면이 페이지 하단의 호환성 표를 참조하십시오. 이 기능은 언제든지 작동하지 않을 수 있습니다.version 속성은 SVG 문서가 준수하는 사양을 나타내는 데 사용됩니다. 루트 요소에서만 허용됩니다. 이는 순전히 자문이며 렌더링 또는 처리에 영향을 미치지 않습니다.
추신 : SVG 2는 아직 표준이 아닙니다.