HTML 文档除 以外的 DTD 在什么情况下会用到?
关于浏览器对 HTML 文档在不同的 DTD 下的工作模式有个大概的了解。
现在大多推荐使用<!DOCTYPE html>
,使浏览器以标准模式渲染页面,保证页面在各浏览器下最大程度的兼容。
但在什么情况必须使用其他的 DTD 呢?
如果是为了以前写的一些不符合最新标准的页面能够在浏览器下正常显示(?)
那么现在按标准写 HTML 页面的话,是否已无需考虑其他的 DTD 了?
如果上述内容有理解错误也希望大家指出,非常感谢!
一些常见的 DOCTYPE 及其触发的模式,在这个链接页面的下方有表格。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如 @radius 所言,今天我们通常都是写 HTML 5,所以使用
<!DOCTYPE html>
即可。如果你非常清楚的知道写的不是 HTML5,比如,明确是 XHTML 1.0 Strict 模式,那可以使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
。有些框架,比如 4.0 之前的 ExtJS,为了兼容低版本的 IE 在框架里处理了不同浏览器的差异,它的建议是不是用 doctype。
如果你在编写 HTTP 服务器,那么,对于像是 404、500 这样的页面,你可能会使用 HTML 3.2 兼容一些已经进了博物馆的浏览器:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
。当你编写 HTML 邮件时,可能会发现一些邮件客户端从安全或别的原因考虑,对于新的 HTML 以及一些好的习惯如使用样式支持不好,可能需要使用
font
之类的标记,因此也会使用老版本的 HTML,不过这种情况,是不是用 doctype 并没有关系了。任何情况下都建议使用 <!DOCTYPE html>
这是唯一的一种html5的声明方式
DTD 是
Document Type Definition
的缩写,用于校验文档的正确性,一般情况下浏览器会无视最后面的校验文档,比如:"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
,不过中间的PUBLIC "-//W3C//DTD XHTML 1.1//EN"
往往会决定浏览器的渲染模式。默认地,
<!doctype html>
会令浏览器按照标准或接近标准的模式渲染html,因此才会被推荐使用这种写法作为文档声明。其他常见的情况就是使用xhtml 1.1
,凭个人经验,我只记得在Chrome下唯一的区别就是当文档高度小于视口高度时,文档会充满视口。一般地,没必要纠结。当然了,极少数特殊需求,比如嵌入式系统里使用极旧的html标准,那另说。