!DOCTYPE的功能是什么?

Ric*_*cky 28 html doctype

我们经常看到<!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版本相匹配.


dem*_*mas 8

它告诉验证器你正在使用哪个版本的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)

  • 您可能还想添加HTML5 Doctype:"<!DOCTYPE html>". (4认同)