我非常喜欢使用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>