>웹 프론트엔드 >CSS 튜토리얼 >`` 태그를 사용하여 삽입된 SVG에 CSS 스타일을 적용할 수 있나요?

`` 태그를 사용하여 삽입된 SVG에 CSS 스타일을 적용할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 22:16:15704검색

Can CSS Styles Be Applied to SVGs Embedded Using the `` Tag?

내장된 SVG에 CSS 스타일 적용

태그를 사용하면 문서의 스타일시트를 통해 스타일을 지정할 수 있습니다. 그러나 질문이 생깁니다. 를 사용하여 삽입된 SVG에 유사한 스타일을 적용할 수 있습니까? 태그?

짧은 답변: 아니요

CSS 스타일은 기본 문서와 포함된 SVG 사이의 스타일을 포함하여 문서 경계를 넘을 수 없습니다.

대체 솔루션

태그가 포함된 경우 JavaScript를 사용하여 SVG 문서에 스타일시트를 삽입할 수 있습니다. 예는 다음과 같습니다(가 완전히 로드되었다고 가정).

var svgDoc = yourObjectElement.contentDocument;
var styleElement = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
styleElement.textContent = "svg { fill: #fff }"; // style as desired
svgDoc.getElementById("where-to-insert").appendChild(styleElement);

또한 요소를 외부 스타일시트로:

var svgDoc = yourObjectElement.contentDocument;
var linkElm = svgDoc.createElementNS("http://www.w3.org/1999/xhtml", "link");
linkElm.setAttribute("href", "my-style.css");
linkElm.setAttribute("type", "text/css");
linkElm.setAttribute("rel", "stylesheet");
svgDoc.getElementById("where-to-insert").appendChild(linkElm);

직접 링크

스크립팅 없이 SVG 파일에서 직접 스타일시트에 링크할 수도 있습니다:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="my-style.css" type="text/css"?>
<svg xmlns="http://www.w3.org/2000/svg">
  ... rest of document here ...
</svg>

추가옵션: JQuery-SVG 플러그인

2015년부터 jquery-svg 플러그인을 사용하여 JS 스크립트와 CSS 스타일을 임베디드 SVG에 적용할 수 있습니다.

위 내용은 `` 태그를 사용하여 삽입된 SVG에 CSS 스타일을 적용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.