【发布时间】:2026-01-17 22:40:01
【问题描述】:
我创建了一个带有内联 SVG 的 XHTML 文件。它在以 .XHTML 测试时不显示,但在以 HTML 测试时会显示。我已经搜索了互联网,并相信我指定了正确的命名空间等,但是,我对它为什么不显示感到困惑。请帮助我理解我做错了什么。
注意:我也尝试过使用或不使用 xlink,但没有发现任何变化(但是我需要 xlink,因为我需要 safari 支持)。
提前感谢您的帮助!
示例:index.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http-www.w3.org/2000/svg" xmlns:xlink="http-www.w3.org/1999/xlink">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<title>inline svg in XHTML file</title>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px">
<defs>
<symbol id="icon-home" viewBox="0 0 32 32"><title>Home Icon</title>
<path d="M32,19.271L16,5.582L0,19.271v-5.582L16,0l16,13.689V19.271z M28,18.773V32h-8v-8.817h-8V32H4V18.773l12-9.919L28,18.773z" />
</symbol>
</defs>
</svg>
<div>
<a href="#"><svg style="width:32px; height:32px;" viewBox="0 0 32 32"><use xlink:href="#icon-home" /></svg> home</a>
</div>
</body>
</html>
【问题讨论】:
-
我建议将此代码粘贴到官方W3C Linter,因为它看起来不支持SVG。