여러 개의 SVG 파일이 포함 된 페이지가 있습니다. SVG 파일의 스타일을 동기화하기 위해 모든 스타일 정보를 담을 단일 스타일 시트를 만들고 싶었습니다.IMG 태그에 포함 된 SVG의 CSS에 연결
그러나 아래의 SVG를 포함 시키면 CSS가 적용되지 않습니다. 누구나 이것에 대한 해결책이 있거나 아니면 <img src="..." />
이 참조하는 SVG의 다른 (CSS) 파일에 링크 할 수 없습니까?
아래 예제 코드를 참조하십시오. pic.svg
을 브라우저에 직접로드하면 모든 스타일이 적용되고 녹색 사각형이 표시됩니다. 그러나 열 때 page.htm
모든 볼 것이다 검은 사각형입니다. 분명히 정의 된 스타일은 적용되지 않았습니다.
에 Page.htm
<!DOCTYPE html>
<html>
<body>
<img src="pic.svg" style="width: 100px; height: 100px;" />
</body>
</html>
pic.svg
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<?xml-stylesheet type="text/css" href="styles.css" ?>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 100 100"
>
<rect x="10" y="10" width="80" height="80" />
</svg>
을 styles.css
rect {
stroke: black;
fill: green;
}
EDIT
답변에서 짧은 시간 동안 여기에 나타났습니다. this link to the spec 및 다음 인용문이 있습니다. 제 의견으로는 위의 코드가 작동해야한다고 명시되어 있습니다! 'IMG', '물체'(HTML) 또는 '상'(SVG)과 함께 HTML 또는 XML 문서에 포함
독립형 SVG 문서 요소
[...]
"귀하의 링크에서 참조 된 SVG 문서 내에서 어디서나 정의 스타일 시트를 인용전체 SVG 문서에 적용하지만, (스타일 요소 또는 스타일 속성, 또는 스타일 시트 처리 명령와 연결 외부 스타일 시트에서 에서) ~하지 마라. 참조하는 문서 (아마도 HTML 또는 XHTML)와 일치해야합니다. "
그러나이 경우 SVG 파일 당 하나의 스타일 정의가 다시 있습니다. 그리고 그것은 내가 게시 한 spec 추출물과 어떻게 관련이 있습니까? – Sirko
스타일 정의를 공유하려는 경우 이미지 태그를 사용할 수 없습니다. 보안 문제는 일반적으로 그런 것들을 고려하지 않는 사양 요구 사항을 무시하는 경향이 있습니다. –
분명히 이것은 또한 HTML 파일을 통해로드 된 SVG 파일에서 외부 글꼴을 참조 할 수 없다는 것을 의미합니다. –