我们经常看到<!DOCTYPE ...>
如下:
<!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">
Run Code Online (Sandbox Code Playgroud)
功能是!DOCTYPE
什么?
Dav*_*ebb 25
DOCTYPE最重要的用途是在Quirks Mode和Standards Mode渲染之间切换浏览器.
这个功能是因为旧版IE中的"破坏"渲染.人们意识到,如果微软只是"修复"IE渲染引擎,许多现有网站将无法正常呈现.所以它的工作方式是如果你在你的页面中放置任何有效的DOCTYPE声明,假设你知道你正在做什么,你的浏览器将以符合标准的方式呈现,如果你不在其中放置一个将以旧的"错误"方式呈现.
这最初是在IE中为Mac完成的,但是自IE5以及Firefox,Chrome,Safari和Opera以来,这种行为在IE的所有版本中都是一样的.
DOCTYPE 应该是文档类型定义.HTML是SGML的子集(与XML一样).DTD告诉解析器您正在使用哪种语法.因此,在网页中,您的DOCTYPE应与您正在使用的HTML版本相匹配.
它告诉验证器你正在使用哪个版本的HTML.浏览器使用此信息正确呈现页面.
以下是DOCTYPE的正确版本:
HTML 4.01严格,过渡,框架集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Run Code Online (Sandbox Code Playgroud)XHTML 1.0严格,过渡,框架集
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!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 XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Run Code Online (Sandbox Code Playgroud)XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Run Code Online (Sandbox Code Playgroud)HTML5
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)