App*_*rao 3 xhtml doctype svg html4 internet-explorer-10
<%@ Page Language="C#" .. %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
/*上述代码无效.没有任何输出.如果将Doctype的第二行替换为如下所示,则可行.
<!DOCTYPE html PUBLIC" - // W3C // DTD XHTML 1.0 Transitional // EN"" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
任何人都可以帮助我理解关键的区别吗?*/
关键的区别在于
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
导致浏览器使用怪癖模式.IE在怪癖模式下不支持SVG .
而
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
导致浏览器几乎处于标准模式.
您可以将文档类型转换为非常容易在IE9中呈现SVG的文档类型,只需添加系统标识符,如下所示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
我不知道这是否会工作IE10,但如果IE10遵循HTML5 DOCTYPE解析规则像它应该,甚至上面的文档类型会导致怪癖模式,因此可能会导致SVG不渲染.
HTML 3.11在十三年前的1999年被HTML 4.0取代为W3C推荐,所以你应该使用的绝对最小文档类型是
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
这将在HTML5兼容的浏览器中引起几乎标准模式,就像你提到的XHTML文档类型一样.但这是为了让人们从HTML 3.2切换他们的网站.
更好的方法是确保您的网站以标准模式运行.你可以使用像HTML 4.01严格的doctype那样做
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
这是目前的W3C推荐,但它仍然需要记住很长时间.将浏览器置于标准模式的同样工作的最短字符串是
<!DOCTYPE HTML>
这就是为什么它被选择用于HTML5和更高版本的文档.
| 归档时间: |
|
| 查看次数: |
9470 次 |
| 最近记录: |