【发布时间】:2014-08-22 13:17:34
【问题描述】:
我非常喜欢将 SVG 的内联用于矢量图标和类似用例。最近,在 Internet Explorer 8 中进行测试时,我发现 xmlns 属性的存在导致 HTML5Shiv 失败。我提交了一份问题报告 (https://github.com/aFarkas/html5shiv/issues/167) 只是为了收到 XML 不属于 HTML5 的尖刻回答。
SVG 虽然是 XML,但似乎已被接受为最佳实践,并且经常被推荐用于 HTML5,因此我得到的响应似乎很愚蠢。
我的问题是 XMLNS 在 HTML5 中使用是否有效?大多数教程似乎都推荐它(甚至是 HTML5Rocks:http://www.html5rocks.com/en/tutorials/svg/mobile_fundamentals/),除了它能够破坏 HTML5Shiv 之外,我还没有发现任何东西告诉我它在 HTML5 中是无效的。
我的问题的第二部分是删除该属性是否会造成伤害。如果我删除“xmlns”属性,我会在不同的浏览器中看到哪些错误?
我已将其从我的代码中删除,没有发现任何问题,但我想再次检查。
编辑
我包含了导致问题的 HTML/XML。请注意,只需删除“xmlns”部分即可解决此问题。
<header>
<div>
<a href="#navigation" class="page_nav_btn" id="navBtn" >
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="18" viewBox="0" version="1.1">
<switch>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(-1.000000, 0.000000)" fill="#FFFFFF">
<rect x="0" y="0" width="23" height="3"/>
<rect x="0" y="7" width="23" height="3"/>
<rect x="0" y="14" width="23" height="3"/>
</g>
</g>
<foreignObject>
MENU
</foreignObject>
</switch>
</svg>
</a>
</div>
</header>
【问题讨论】:
-
其实我回答了你的问题:github.com/aFarkas/html5shiv/issues/167#issuecomment-53069093。如果您将有效的多语言标记与 xmlns 属性结合使用,我无法复制此问题。我可以看到一个问题,如果代码不满足多语言标记,但仍使用 xmlns 属性。因此,如果这导致您的问题,我不认为这是一个 html5shiv 问题。但我需要更多信息。
-
是的,我看到了,谢谢。删除该行可以解决问题,并且似乎不会导致任何其他错误。如果你想看的话,我会把原始代码放在下面。同样,这个问题只出现在 IE8 中
-
是的,我需要 HTML。
标签: xml html validation svg