HTML中DOCTYPE声明及常见的DTD类型

简介:

DOCTYPE是document type文档类型的简写,用来说明所用html或者xhtml是什么版本。其中的DTD叫文档类型定义,里面包含了文档的规则,浏览器就根据定义的DTD来解释页面的标识并展示。
要建立符合标准的网页,必须声明DOCTYPE,除非xhtml确定了一个正确的声明,否则标识和css样式表都不会生效。如果漏写了DTD声明,Firefox仍然会按照标准模式来解析网页,但是IE浏览器就会发出怪异模式。

DTD声明:

概念:
在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种。在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。HTML5 不基于 SGML,所以不需要引用 DTD。
H4中的三种模式:

  • 过渡型:要求非常宽松,允许继续使用HTML4.01的标识,但是要符合xhtml的写法。
  • 严格型:要求严格,不能使用任何表现层的标识和属性。如<br/>
  • 框架型:专门针对框架页面设计使用,如果页面中包含框架,需要采用这种模式。

代码:

<!--用于XHTML 1.0 的过渡模式-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!--用于XHTML 1.0 的严格模式-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<!--用于XHTML 1.0 的框架模式-->
<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Frameset//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

<!--用于手机移动端开发-->
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN""http://www.wapforum.org/DTD/xhtml-mobile10.dtd" >

<!--用于XHTML 4.0的过渡模式-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--用于XHTML 4.0 的框架模式-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

<!--用于XHTML 4.0的严格模式-->
<!DOCTYPE HTMLPUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!--用于HTML 5的只有一种声明-->
<!DOCTYPE html>

选择:
理想情况下使用严格DTD,新人主要使用过渡DTD(XHTML 1.0 Transitional),因为这种模式允许使用表现层的标识,元素和属性,也容易通过W3C的代码校验。表现层的标识,元素和属性是指纯粹用来控制表现的标签,比如用于排版的表格,背景颜色标识等。在xhtml中标识是用来表示结构的而不是表现形式的,过渡的最终目的是实现数据和表现分离。
在选择使用哪种模式时参考使用用户来决定,当大多用户使用的是不能使用别的样式表的旧浏览器,那就不能使用严格型。要是大部分用户使用的是最新版的IE,Netscape,Opera或者Safari时,使用严格型是最好的选择。

本文参考文章:https://blog.csdn.net/ok7758521ok/article/details/3962141

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值