还是得注意DOCTYPE的声明

原创 2004年11月02日 18:35:00

前两天才提到DOCTYPE的问题,今天在博客堂发现也有人为它所困扰。在lostinet可怕的loose.dtd》这篇文章里谈到因为使用了DOCTYPE使一个样式失效的问题。但是仔细看了看,发现其实并不是因为DOCTYPE在做怪,而是不正确的html代码和没有理解DOCTYPE造成。

下面这个html代码是lostinet提到的失效的代码:
<div style='height:400px;width:400px;border:1px solid red"'></div>
注意看div的style属性,在red后面多了一个"符号,粗一看还看不出来呢。因为多了这一个符号,这个style是一个不合乎w3c html4标准的,所以就失效了。

但是为什么去掉它就起作用了呢?从“头”说起吧。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
在网页最顶部这一行DOCTYPE声明,很多网页设计者都不太了解它的的意思,它是要求浏览器按照html4过渡标准来识别你的html文本,如果浏览器支持DOCTYPE的话,就可以按照这个标准来分析它了。
如果没有这个声明的话,一些浏览器就按照各自兼容的模式来分析网页,如果你使用IE5.x/IE6浏览器的话,去掉DOCTYPE就可以让浏览器兼容分析div的style,就可以起作用了。另外如果你的DOCTYPE不完整,比如你去掉了后面那个uri地址,这个文档标准的声明也不起作用。

所以一旦你做了DOCTYPE声明,而你发现你的网页不正确的显示,你得检查看看你的html代码是否符合你声明的标准。如果你的网页为了获得好像更好的兼容效果,不加DOCTYPE,这首先不是一个好的网页编写习惯,你的网页可能不符合w3c的标准;其次长远看来将得不偿失,因为这种兼容仅仅是在一个固定的浏览器上兼容,其他的浏览器不一定能够兼容你的html代码。为了让你的网页更有生命力,建议按照w3c标准编写网页。

关于DOCTYPE的知识和完整列表,看看参考下面这个网页
http://www.alistapart.com/articles/doctype/

HTML <!DOCTYPE> 标签

不管是刚接触前端,还是你已经“精通”web前端开发的内容,你应该知道在你写html的时候需要定义文档类型;你知道如果没有它,浏览器在渲染页面的时候会使用怪异模式;你知道各个浏览器在怪异模式下对各个元素...
  • zyuzixiao
  • zyuzixiao
  • 2014年01月24日 15:53
  • 5891

聊html——应该先说DOCTYPE(用法详解)

小记 假如面试官让你谈谈html,我觉得他首先想要了解的应该是你对doctype的理解。(貌似当时I’not get the point) 一、定义描述 在MDN上,对于Doctype有...
  • tangxiaolang101
  • tangxiaolang101
  • 2016年06月14日 13:48
  • 811

HTML5中回归简单的<!DOCTYPE>声明

默认情况下,Firefox浏览器和IE浏览器的解释标准是不一样的。如果一个网页没有声明DOCTYPE,它就会以默认的DOCTYPE解释下面的HTML或XHTML。在同一种标准下,不同浏览器的解释模型都...
  • wangxiaoqin11
  • wangxiaoqin11
  • 2014年12月19日 21:22
  • 1597

为什么要用<!DOCTYPE>声明

实例: 我们经常会看到类似这样的代码: 文档的标题 文档的内容...... 注解:可以看到最上面有一行关于“DOCTYPE”(文档类型)的声明,它就是告诉浏览器,使用哪...
  • user_longling
  • user_longling
  • 2014年10月22日 14:32
  • 2997

使用正确的DOCTYPE 声明

    我们浏览的大多数网站,或者用Dreamweaver创建一个新的网页文档时,源码的顶部都会有DOCTYPE声明,但是很多人没有注意它,甚至在创作时候直接将它删掉,其实这往往就是噩梦的开始。在遵循...
  • hotdust
  • hotdust
  • 2010年07月22日 00:02
  • 1324

Jsp中的DOCTYPE声明

声明符合自己需要的DOCTYPE。   查看原代码,可以看到第一行就是: 3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x...
  • op_zoro
  • op_zoro
  • 2012年11月04日 09:02
  • 642

jsp页头DOCTYPE文档声明的重要性

今天做一个js控制的弹出层,谷歌,火狐均好用,就是ie不好用,调试半天,各种兼容测试,均告失败。最后对比原来页面,发现页面的文档声明不一致。 这是我默认声明: 改过后: 测试ie成功。...
  • u013803303
  • u013803303
  • 2015年11月09日 17:26
  • 509

DOCTYPE 文档类型声明

DOCTYPE声明文档类型,以便验证文档是否符合文档类型定义(DTD),同时指定了浏览器关于页面使用哪个HTML版本进行编写的指令。开发人员在编写完html代码后,要进行有效性验证。w3c提供了一个验...
  • wepe12
  • wepe12
  • 2016年09月17日 11:22
  • 402

java w3c DOM生成XML文件时怎么加如DOCTYPE声明部分

[ ]>  PEK  SHA    2011-06-19 怎么用w3c创建[ ]>呢
  • caojiapingaccp
  • caojiapingaccp
  • 2011年06月10日 16:15
  • 939

为页面添加正确的doctype声明-W3C标准

用dw设计网页时,代码最前面总要出现一个下面的东东, "http://www.w3.org/tr/html4/loose.dtd"> 这个是dw自动在网页文件页增加了dtd信息(DOCTYPE...
  • qq592304796
  • qq592304796
  • 2016年08月16日 16:57
  • 235
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:还是得注意DOCTYPE的声明
举报原因:
原因补充:

(最多只允许输入30个字)