No.2 DOCTYPE是做什么的?

2024-02-12 14:48
文章标签 no.2 doctype

本文主要是介绍No.2 DOCTYPE是做什么的?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自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下,如果你有什么新发现,欢迎给我留言。

这篇关于No.2 DOCTYPE是做什么的?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/702807

相关文章

Document root element sqlMap, must match DOCTYPE root sqlMapConfig.

解决两个问题(主要是刚开始学习ibatis的错误) Error parsing XML. org.xml.sax.SAXParseException: Document root element "sqlMap", must match DOCTYPE root "sqlMapConfig".  Error parsing XML. org.xml.sax.SAXParseException

在ibatis中为什么要加上这些代码?!DOCTYPE sqlMapConfig xxx !DOCTYPE sqlMap xxx

配置文件中:(注意如果用spring整合的话就不需要这句话了 需要jar包spring-framework-2.5.6.SEC01.zip) <!DOCTYPE sqlMapConfig           PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"           "http://ibatis.apache.org

《算法笔记》总结No.2——模拟

一.简单模拟 考察代码能力,不涉及算法:一类题目怎么说你就怎么做的类型~ 巴音布鲁克比赛,以车队为基准评选冠军。业务要求是:第一行输入正整数N,代表车手的总个数;接下来的N行每行键入两个数字:分别是车队编号和该车手得分。最终要求输出冠军车队及其得分~ 没什么可说的,直接根据数组下标来储存各个队的积分,再升序排列,将最后一位输出即可,如下: #include <iostream>#in

【坑】在HTML页面中缺少!doctype html造成部分js代码失效问题

<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><script type="text/javascript">function sayhello() {alert("hello shushu");}function resizeRock() {document.getElementById("roc

文档根元素 beans 必须匹配 DOCTYPE 根 null 报错!

文件引用定时器配置注解,从@PropertySource改成@ImportResource,错误就没了,原因不明,待探究! @PropertySource(value ="classpath:/scheduling-config.xml") 改成 @ImportResource(value ="classpath:/scheduling-config.xml")

DOCTYPE 的作用是什么?标准与兼容模式(混杂模式)各有什么区别?

`DOCTYPE`(文档类型声明)是HTML文档中的一个声明,它告诉浏览器该文档使用哪种HTML或XHTML规范。它位于文档的最前面,处于`<html>`标签之前。 `DOCTYPE`的作用主要有以下几点: 1. **触发标准模式**:`DOCTYPE`声明能够触发浏览器使用标准模式(也称为严格模式或无怪异模式)来解析HTML文档。如果没有`DOCTYPE`声明,浏览器可能会进入混杂模式(也称为怪

约瑟夫问题No.2 C/C++和Java代码

题目描述 问题 n个小孩围坐成一圈,并按顺时针编号为1,2,…,,从编号为p 的小孩顺时针依次报数,由1报到m,报到m时,这名小孩从圈中出去;然后下一名小孩再从1报数,报到m 时再出去。以此类推,直到所有小孩都从圈中出去。请按出去的先后顺序输出小孩的编号。 输入 第一个是n,第二个是p,第三个是 m(0<m,n<300)。 最后一行是:0 0 0。 输出 按出圈的顺序输出

Crowd counting 系列NO.2—MCNN

声明:博客是用latex写的,所以直接用图片来展示吧,效果是一样的。下载资源网上都很容易搜到,如需下载资源,请留言。

[Spring实战系列] - No.2 Bean基本知识

在这一篇文章中,我将会简单地介绍有关Bean的基础知识,这也是Spring实战这本书的第二章节的主要内容。我所使用的代码也是来自于Spring 实战这本书。   主要内容:         1.什么是Bean?我们如何使用Bean?         2.Setter注入和构造注入         3.Bean的一些属性:内部Bean         4.Bean的装配和范围化     1

[数据库与SQL] - No.2 SQL中的除法

SQL中的除法是用于解决什么场景的呢? 我们假设student 表示学生信息,sc表示学生选课记录,course表示课程信息,其结构如下: CREATE TABLE `student` (`Sid` varchar(10) DEFAULT NULL,`Sname` varchar(10) DEFAULT NULL,`Sbirth` datetime DEFAULT NULL,`Ssex`