> 웹 프론트엔드 > CSS 튜토리얼 > 직접적인 CSS 스타일링이 제한된 경우 내장된 SVG의 스타일을 효과적으로 지정할 수 있는 방법은 무엇입니까?

직접적인 CSS 스타일링이 제한된 경우 내장된 SVG의 스타일을 효과적으로 지정할 수 있는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-23 03:16:17
원래의
306명이 탐색했습니다.

How Can I Effectively Style Embedded SVGs When Direct CSS Styling Is Limited?

내장형 SVG 스타일 지정: CSS 제한 사항 및 대체 접근 방식

개요

내장형 SVG(Scalable Vector Graphics) 스타일 지정은 직접 포함된 SVG에 비해 문제가 될 수 있습니다. 문서에서. 효과적인 스타일링을 위해서는 제한 사항을 이해하고 대체 방법을 모색하는 것이 중요합니다.

내장된 SVG의 직접 CSS 스타일링

태그, CSS 스타일은 문서의 스타일시트에서 직접 적용할 수 없습니다. CSS 스타일은 문서 경계를 넘지 않기 때문입니다.

object svg {
    fill: #fff;
}
로그인 후 복사

스크립트를 사용하여 스타일 삽입

삽입된 SVG는 별도의 문서이므로 스크립트를 사용하여 스타일을 삽입할 수 있습니다. 다음 메소드는 완전히 로드되었습니다:

var svgDoc = yourObjectElement.contentDocument;
var styleElement = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
styleElement.textContent = "svg { fill: #fff }";
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 파일에서 직접 스타일링

또는 스타일을 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>
로그인 후 복사

또는

<svg xmlns="http://www.w3.org/2000/svg">
  <defs>
    <link href="my-style.css" type="text/css" rel="stylesheet" 
          xmlns="http://www.w3.org/1999/xhtml"/>
  </defs>
  ... rest of document here ...
</svg>
로그인 후 복사

추가 옵션: jquery-svg 플러그인

jquery-svg 플러그인은 유연성을 높이기 위해 내장된 SVG에 CSS 스타일과 JavaScript 스크립트를 적용하는 방법을 제공합니다.

위 내용은 직접적인 CSS 스타일링이 제한된 경우 내장된 SVG의 스타일을 효과적으로 지정할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿