加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

DOCTYPE类型详细介绍

发布时间:2020-05-13 18:55:41 所属栏目:编程 来源:站长网
导读:我们在HTML内里声明DOCTYPE一样平常会有以下几种: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN !DOCTYPE HTML PUBLIC -//W3C//DTD

我们在HTML内里声明DOCTYPE一样平常会有以下几种:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
是的,这里有HTML和XHTML,也有Transitional和Strict之分。顾名思义,XHTML是指这个文档是凭证XML的名目来誊写的,而HTML则暗示这个文档是凭证HTML的名目来誊写的。Transition则暗示这个文档到达了Transitional.dtd可能loose.dtd的要求,Strict则暗示这个文档到达了strict.dtd的要求。但究竟上我们常常会存在以下的误解:
(1) 我的文档是声明为XHTML的,则我的文档必定完全凭证XML的名目。
(2) 我的文档是声明为Strict的,则我的文档必定是凭证Strict Mode的方法来Render的,反之,是以Quirks Mode的方法来Render的。
这两种领略都很直接,然而却是错误的,我们也常常会犯这种的错误。
起首,文档声明为XHTML和HTML,和文档的Parse(即赏识器对文档的说明)是没有直接关联的。究竟上,赏识器怎样Parse文档取决于处事器以什么名目来提供这个文档。凡是环境下,有两种方法,"text/html"和"application/xhtml xml"。只有以"application/html xml"方法来提供的文档才气够被凭证XML的方法来Parse。然而,由于赏识器的汗青缘故起因,并不是全部的赏识器都支持"application/xhtml xml"名目标文档,IE7之前的版本(包罗IE7)就不可以或许支持这种名目,假如IE7遇到这种名目标文档,它会提醒用户另存为其余文件。思量到IE行使的普及性,今朝绝大部门的文档都是以"text/html"的方法来提供的。以"text/html"方法来提供的文档是凭证HTML的语义来Parse的,各人都知道HTML的容错性长短常强的,纵然你的文档内里的TAG没有正确地封锁,这个HTML也可以或许被正确地表现出来。因此假如你的XHTML是以"text/html"的方法来提供的(绝大大都环境下都是),那么你纵然在DOCTYPE内里声明白XHTML,你的文档也不是以XML的名目来Parse的,因此也不能担保你的文档是严酷凭证XML的类型的。究竟上,许多专家都提议假如你的文档不是以"application/xhtml xml"的方法来提供的,那么你就应该声明为HTML。
其次,赏识器以什么样的方法来Render你的文档,并不以你声明的DTD来抉择的。究竟上,假如你声明白DOCTYPE和DTD,你的文档就是以Strict Mode(可能称为Standard Mode,许多赏识器还包罗Almost Standard Mode的方法,这里不举办区分)方法来Render的。对付没有DOCTYPE的文档,才是以Quirks Mode方法来Render的。因此赏识器的Render模式和你声明的DTD并没有直接的相关。
最后,你声明为Strict.dtd照旧Transitional.dtd,在今朝的赏识器看来是没有什么区此外。Strict.dtd比Transitional.dtd可能loose.dtd要严酷多了,许多元素在strict.dtd内里都不能行使。然而由于赏识器的兼容性,纵然你在DOCTYPE内里声明白Strict.dtd,赏识器碰着strict.dtd内里不应承的元素,也还可以或许正确地表现你的文档。我揣摩赏识器并没有将DTD思量进去。譬喻iframe这个TAG在strict.dtd内里并不存在,但纵然你的DOCTYPE内里声明白strict.dtd,然后行使了iframe这个TAG,赏识器(包罗IE7,IE8,FF3.0,Safari 3.0)都可以或许正确地表现你的文档。赏识器并没有凭证你声明的DTD来Parse你的文档。今朝可以或许担保你的文档是切合strict.dtd照旧Transitional.dtd的,只能通过一些网上的Validator,如W3C Validator来说明,赏识器并不可以或许给你很好的支持。虽然,现实上假如你可以或许严酷凭证你声明的DTD来誊写你的文档,那是最好的,这样担保了往后赏识器对DTD严酷遵守的时辰,你的文档不会发生错误。
因此,
(1) 假如你的文档是以"text/html"的方法来提供的,那么你就应该声明为HTML。若是你想要让IE7可以或许正确地表现,那么你就更应该这么做了。
(2) 假如你的文档声明为XHTML,那么你应该以"application/html xml"的方法来提供。
(3) 只管在你的文档前面声明DOCTYPE和DTD,这样可以或许担保你不是以Quirks Mode的方法来Render文档的。
(4) 假如你声明白DTD,那么就要严酷凭证DTD的要求来誊写你的文档。出格是假如你声明白Strict.dtd,那么你应该留意哪些元素是不可以或许行使的。
留意:跟着时刻的成长,赏识器对HTML和XHTML,Strict.dtd和Transitional.dtd的支持会更好。假如你的赏识器比IE7, IE8, FF 3.0和Safari 3.0要高许多许多的版本,那么你要留意本文的合用性。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读