HTML文件没有doctype声明,HTML基础标签之DOCTYPE声明

e0d7ac625dcf298f9d07271c11b2973c.png

HTML:

c7182cf13575b78bd26d033c98b537d4.png

XHTML:

e356ecd963268eb3f7370f606888f66e.png

声明位于文档中的最前面的位置,处于标签之前,声明不是HTML标签,它只是告知浏览器该文档使用哪种HTML(HyperText Markup Language 超文本标记语言)或XHTML(Extensible HyperText Markup Language 可扩展超文本标记语言)规范(所有浏览器都支持)。因为浏览器必须在解析HTML文档正文之前就确定当前文档的类型,以决定其需要采用的渲染模式。因为不同的渲染模式会影响到浏览器对于CSS代码甚至JavaScript脚本的解析,所以一定要给HTML文档添加声明。

小提示:声明没有结束标签而且对大小写不敏感。因为HTML语法较松散,HTML也会慢慢向XML(Extensible Markup Language 可扩展标记语言)转变,XHTML是为过渡而产生的,在XHTML中DOCTYPE还是需要大写所以建议大写(DOCTYPE)。在HTML4.01中,声明引用DTD(Document Type Declaration 文档类型声明),因为HTML4.01基于SGML(Standard Generalized Markup Language 标准通用标记语言),DTD规定了标记语言的规则,这样浏览器才能正确地呈现内容。而HTML5不基于SGML,所以不需要引用DTD。

小知识:是HTML5唯一的标准网页声明,全称为Document Type HyperText Markup Language,意思是:文档种类为超文本标记性语言。现在是这个简洁形式,支持HTML5标准的主流浏览器都认识这个声明,表示网页采用HTML5,现在最好采用h5声明,因为它所触发的模式与严格型HTML或严格型XHTML所触发的模式完全相同,代码也相比较简洁许多,也是进入HTML5时代(Forwards Compatibility 向前兼容,Forwards有未来的意思,就是向未来兼容)。

的重要性:声明文档的解析类型(document.compatMode),避免浏览器的怪异模式,现在基本上不存在怪异模式解析,其实为了兼容以前旧网站(Backwards Compatibility 向后兼容,Backwards有回退的意思,就是向过去兼容)。解析类型有两种:

Quirks mode-怪异模式、混杂模式(document.compatMode=BackCompat),浏览器使用自己的怪异模式解析渲染页面(目的是向后兼容),浏览器都按照自己的方式解析渲染页面,那在不同的浏览器就会显示不同的样式(无声明 以HTML5为例)。Strict/Standards mode-标准模式、严格模式(document.compatMode=CSS1Compat),浏览器使用W3C的标准解析渲染页面(有声明 以HTML5为例) 。

浏览器都支持两种解析模式,在旧的、没有采用W3C标准的网页中,使用怪异模式解析,可以使页面正常显示;在声明采用标准模式的网页中,使用标准模式解析,可以让页面使用W3C的标准特性(js判断页面解析方式:document.compatMode=="CSS1Compat"或"BackCompat")。

两种解析模式的区别(这里说明怪异模式):

盒模型的宽高包含内边距padding和边框border:IE5.5及以下的浏览器及其他版本的Quirks mode下,IE的宽度和高度还包含了padding和border。可以设置内联元素的宽高:span等内联元素设置wdith和height会生效。可设置百分比的高度:父元素无高度,子元素设置百分比会生效。margin:0 auto设置块级元素水平居中在IE下会失效:margin:0 auto;在quirks模式下却会失效,但可以使用text-align:center;来实现块级元素居中。图片的padding会失效。inline元素和table-cell元素的vertical-align:bottom:table单元格中的图片的vertical-align属性默认取值为bottom,因此在图片底部会有及像素的空间。Table中的字体属性不能继承上层的设置。white-space:pre会失效。元素溢出的处理:溢出会被当做扩展box来对待,即元素的大小由其内容决定,溢出不会裁减,元素框自动调整,包含溢出内容。

小扩展:XML用来描述数据,而HTML则用来显示数据。XHTML是HTML与XML的结合物,它包含了所有与XML语法结合的HTML4.01元素,它是更严谨更纯净的HTML版本。XHTML元素必须被正确地嵌套;必须被关闭;标签名必须用小写字母;文档必须拥有根元素。XML是一种标记性语言,其中所有的东西都要被正确的标记,以产生形式良好的文档,它是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

如果你的文档在服务器是以"text/html"的方式来提供的(大部分文档是这种形式),那么你就应该声明为HTML;如果你的文档声明为XHTML,那么你应该以"application/html xml"的方式来提供。

本文英文缩写以及翻译:

HyperText Markup Language 超文本标记语言HTMLExtensible HyperText Markup Language 可扩展超文本标记语言XHTMLExtensible Markup Language 可扩展标记语言XMLDocument Type Declaration 文档类型声明DTDStandard Generalized Markup Language 标准通用标记语言SGMLdocument.compatMode 文档的解析类型Quirks mode 怪异模式Strict/Standards mode 严格/标准模式

如有错误或遗漏的,请在评论中指出!

举报/反馈

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值