`
whilew
  • 浏览: 22222 次
文章分类
社区版块
存档分类
最新评论

为什么使用<!DOCTYPE HTML>

 
阅读更多

原文地址:http://i.wanz.im/2010/05/28/why_doctype_html/

不管是刚接触前端,还是你已经“精通”web前端开发的内容,你应该知道在你写html的时候需要定义文档类型;你知道如果没有它,浏览器在渲染页面的时候会使用怪异模式;你知道各个浏览器在怪异模式下对各个元素渲染是有差异的。所以你会写像这样的doctype:

好在现在的各种web开发工具都足够强大,支持插入模板代码,因此你并不需要把这又长又臭的doctype一个个字母的敲出来。但是如果你受够了它,你也许可以尝试下面这个写法:

哇哦,很简洁哦!好处显而易见:一、你可以轻松的写下这个doctype,而不用担心会写错;二、它是向后兼容的,是的,html5的doctype就是这样写的,并且现代浏览器都认识它。

如果你跟我一样一直以为:没有指定dtd将会开启浏览器的怪异模式,这种说法是错的!正确的说法应该是没有定义doctype才会开启怪异模式,也就是说你只需要定义<!doctype html>就可以让浏览器在严格模式(标准模式)下渲染页面,而不需要指定某个类型dtd。让我们来回顾一下,所有的浏览器都需要两种模式:怪异模式和严格模式(也有人叫标准模式)。IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式。关于两种模式,你需要知道以下几点:

  1. 在标准化之前写的页面是没有doctype的,因此没有doctype的页面是在怪异模式下渲染的。
  2. 反过来说,如果web开发人员加入的doctype,说明他知道他所要做的事情,大部分的doctype会开启严格模式(标准模式),页面也会按照标准来渲染。
  3. 任何新的或者未知的doctype都会开启严格模式(标准模式)。
  4. 每个浏览器都有自己的方式来激活怪异模式。你可以看看这个清单:http://hsivonen.iki.fi/doctype/

注意:你可以根本不需要根据你选择的doctype来验证你的页面,只要doctype标签存在就足以开启严格模式(标准模式)了。如果你对我说的这些还是感到怀疑,那么请前往http://www.quirksmode.org/css/quirksmode.html#link2了解你想知道的内容。我们只需要一小段JavaScript代码就可以得到答案,它就是:

这个代码可以用来判断,当前浏览器是处于怪异模式还是标准模式,该属性的兼容性毋庸置疑,如果你表示怀疑,可以查看http://www.quirksmode.org/dom/w3c_html.html#t11。你可以在你想测试的浏览器里访问:http://wanz.im/demo/doctype-test.html,便可看到结果了,据我所知,这样并没有激活怪异模式,即使是ie6下,如果你有什么新发现,欢迎给我留言。

分享到:
评论

相关推荐

    HTML !DOCTYPE 标签 声明HTML版本

    DOCTYPE&gt;并不是HTML标签,它声明web浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中,&lt;!DOCTYPE&gt; 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现...

    网页 DOCTYPE html标签的作用1

    在网页开发中,`&lt;!DOCTYPE&gt;` 是一个非常重要的声明,它的主要作用是告诉浏览器文档遵循的HTML或XHTML规范...理解并正确使用DOCTYPE声明是编写符合现代Web标准的HTML文档的基础,对于创建高质量、可维护的网页至关重要。

    HTML和XHTML的联系与区别,文档类型<!DOCTYPE>

    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;`,而XHTML 1.0的声明可能为`&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

    文章配套网页源代码-HTML <!DOCTYPE> 声明

    博客文章: 关于HTML中的 &lt;!DOCTYPE&gt; 声明 文章配套示例HTML源代码 内容说明:DOCTYPE是Document Type(文档类型)的简写,要想制作符合标准的HTML页面,一个必不可少的关键组成部分就是DOCTYPE声明。

    购物车代码

    .println("&lt;table align='center'&gt;&lt;tr&gt;&lt;th&gt;图片&lt;/th&gt;&lt;th&gt;产品名称&lt;/th&gt;&lt;th&gt;产品价格&lt;/th&gt;&lt;th colspan=2&gt;操作&lt;/th&gt;&lt;/tr&gt;"); try { DBaccess db = new DBaccess(); ArrayList&lt;Goods&gt; goods = db.Search...

    HTML !DOCTYPE 标签.docx

    值得注意的是,HTML5不再需要引用DTD,其DOCTYPE声明简化为: ```html &lt;!DOCTYPE html&gt; ``` 这是因为HTML5旨在兼容所有浏览器,并且不再区分严格和过渡模式。 使用正确的DOCTYPE声明有助于确保文档遵循特定的标准,...

    index.html

    DOCTYPE html&gt; &lt;!-- 双标签:有头有尾,并且尾巴内会有一个关闭符:/ --&gt; &lt;!-- 该文档的根元素(根节点) --&gt; &lt;html lang="en"&gt; &lt;!-- 头部标签 --&gt; &lt;head&gt; &lt;!-- 单标签(也称空标签):有头没有尾,结尾会有一个...

    为什么使用DOCTYPE HTML

    这个声明位于HTML文档的开头,通常在`&lt;html&gt;`标签之前。它的作用在于确保浏览器以正确的方式解析和渲染网页内容。 在没有DOCTYPE HTML的情况下,浏览器会进入所谓的“怪异模式”或“ quirks mode”。在怪异模式下,...

    HTML &lt;!DOCTYPE&gt; 标签

    DOCTYPE声明位于HTML文档的顶部,通常在`&lt;html&gt;`标签之前。 在不同的浏览器中,如果没有声明DOCTYPE,页面可能会在不同的渲染模式下显示,导致布局和样式差异。例如,Firefox(FF)和Internet Explorer(IE)在默认...

    表格 html 表格 html 表格 html

    如果需要定义表头(通常用来标识各列),可以使用`&lt;th&gt;`标签: ```html &lt;table&gt; &lt;tr&gt; &lt;th&gt;表头一&lt;/th&gt; &lt;th&gt;表头二&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;单元格内容&lt;/td&gt; &lt;td&gt;单元格内容&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; ``` **示例**...

    以下是一个简单的HTML网页代码示例

    DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;我的网页&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;h1&gt;欢迎来到我的网页&lt;/h1&gt; &lt;p&gt;这是一个简单的HTML网页示例。&lt;/p&gt; &lt;ul&gt; &lt;li&gt;列表项1&lt;/li&gt; &lt;li&gt;列表项2&lt;/li&gt; &lt;li&gt;列表项3&lt;/li&gt; &lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;...

    HTML 元素与合法的 Doctype.docx

    在`Strict`模式下,元素必须正确关闭(例如,`&lt;br&gt;`应写为`&lt;br /&gt;`),不允许使用内联样式和某些不推荐的元素。而在`Transitional`模式下,这些限制相对宽松,适合逐步迁移旧代码到更严格的规范。 表中列举的HTML...

    html网页制作.rar

    DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&gt;我的第一个HTML页面&lt;/title&gt; &lt;!-- 这里可以链接外部...

    HTML练习题

    "&gt;这段文字&lt;/span&gt;需要显示为红色并且字号为3。&lt;/p&gt; &lt;/body&gt; &lt;/html&gt; ``` #### 练习二:编写如下图所示效果对应的HTML代码 此题要求我们根据给出的效果图编写相应的HTML代码。由于题目没有提供具体的样式要求,...

    web开发设计教程,常用指令讲解,实际案例资源代码详细讲解并附注释.txt

    标签:如&lt;html&gt;、&lt;head&gt;、&lt;body&gt;、&lt;h1&gt;到&lt;h6&gt;(标题)、&lt;p&gt;(段落)、&lt;a&gt;(链接)、&lt;img&gt;(图像)等。 示例代码: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;我的网页&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;欢迎来到我的网页&lt;/...

    使用Canvas制作的钟表

    doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;script type="text/javascript" src="Clock.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;canvas width='500' height='500' id='clock'&gt;&lt;/canvas&gt; &lt;/body&gt; ...

    WEB开发 之 JavaScript HTML DOM - 改变 HTML.docx

    &lt;/p&gt; &lt;script&gt; document.getElementById("p1").innerHTML = "Newtext!"; &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; ``` 在这个例子中,JavaScript通过`getElementById()`方法找到了id为"p1"的`&lt;p&gt;`元素,并将其`innerHTML`属性...

    网页设计作业网页设计作业

    DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;我的博客&lt;/title&gt; &lt;style&gt; /* 在这里添加你的CSS样式 */ &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;header&gt; &lt;h1&gt;欢迎来到我的博客&lt;/h1&gt; &lt;/header&gt; &lt;nav&gt; &lt;ul&gt; &lt;li&gt;&lt;a...

    html表格样式,及表格

    DOCTYPE html&gt; &lt;html&gt; &lt;style type="text/css"&gt; td{ text-align:center; } a{ text-decoration: none; } img{ width: 25px;height:25px; border-radius: 50%; align="left"; } &lt;/style&gt; &lt;head&gt; ...

    HTML5小例程 JAVASCRIPT

    DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;Grayscale Canvas Example&lt;/title&gt; &lt;script src="modernizr-2010.07.16dev.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;img src="logo.jpg" id="avatar...

Global site tag (gtag.js) - Google Analytics