顺晟科技
2021-06-16 10:58:49
131
前言:今天,有人问我:“你仔细研究过吗?”DOCTYPE标签?”,停顿了一下,因为一开始在W3cschool看到了使用XHTML Transitional DTD的建议,然后我就乖乖的把Dreamweaver的HTML文档类型默认设置为XHTML 1.0 Transitional。当然是从那时候开始用的。人长大了真的很懒,很多东西潜意识里都是想当然的。既然被问到了,我就去找资料,总结了一下。记下来~ ~!DOCTYPE的定义:文档类型声明位于文档的前面,在html标签之前。这个标签告诉浏览器文档使用哪个HTML或XHTML规范。这个标签可以声明三种DTD类型,分别代表严格版本、过渡版本和基于框架的HTML版本。(如果文档中的标签不遵循文档类型声明中指定的DTD,文档可能无法通过代码验证,也可能无法在浏览器中正确显示。)!DOCTYPE的用法:解析doctype html public '-//W3C//DTD XHTML 1.0 Strict//EN ' ' http://www.w3.org/tr/XHTML 1/DTD/XHTML 1-Strict . DTD ':在上面的语句中,声明了文档的根元素是html,在public identifier中定义为'-//W3C//浏览器将知道如何找到与这个public identifier匹配的DTD。如果找不到,浏览器将使用公共标识符后的URL作为查找DTD的位置。-:表示组织名称未注册。互联网工程任务组(IETF)和万维网联盟(W3C)都不是注册的ISO组织。是默认值,表示组织名称已注册。DTD:指定公共文本类,即引用的对象类型。默认为DTD。HTML:指定公共文本的描述,即引用的公共文本的描述性名称。后面可以跟一个版本号。默认为HTML。URL:指定被引用对象的位置。严格:排除所有W3C专家希望淘汰的代表性属性和元素。三种HTML文档类型:HTML 4.01指定了三种文档类型:严格、过渡和框架集。a)如果需要一个干净的标签来避免表示层的混乱,使用HTML Strict DTD类型:DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN ' ' http://www.w3.org/TR/html4/strict.dtd'b)Transitional DTD可以包含W3C期望移入样式表的呈现属性和元素。如果用户使用不支持级联样式表的浏览器,而您必须使用HTML呈现功能,那么请使用Transitional DTD类型:doctype html public '-//W3C//dtd html 4.01 transitional//en ' ' http://www.w3.org/TR/html4/loose.dtd'c)框架集dtd用于带有框架的文档。除了框架集元素替换了主体元素之外,框架集DTD相当于Transitional DTD:doctype HTML Public '-//W3C//DTD HTML 4.01 Frameset//en ' '三种XML文档类型, http://www.w3.org/TR/html4/frameset.dtd': XHTML 1.0指定了三种XML文档类型:Strict、Transitional和Frameset。a)如果你需要一个干净的标签来避免表示层的混乱,使用XHTML Strict DTD类型:DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN ' ' http://www . w3 . org/TR/XHTML 1/DTD/XHTML 1-Strict . DTD ' b)Transitional DTD可以包含W3C希望移入样式表的呈现属性和元素。如果用户使用不支持级联样式表的浏览器,而您必须使用HTML呈现功能,那么请使用Transitional DTD类型:doctype html public '-//W3C//dtd XHTML 1.0 transitional//en ' ' http://www.w3.org/tr/XHTML 1/dtd/XHTML 1-transitional . dtd ' c)框架集dtd用于带有框架的文档。除了框架集元素替换了主体元素之外,框架集DTD相当于Transitional DTD:Doctype html public '-//W3C//dtd XHTML 1.0 frameset//en ' ' http://www.w3.org/tr/XHTML 1/dtd/XHTML 1-frameset . dtd '选择正确的doctype:为了获得正确的doctype声明,关键是要使dtd对应文档所遵循的标准。例如,假设文档遵循xhtml 1.0严格标准,文档的doctype声明应该引用相应的dtd。
另一方面,如果doctype声明指定了xhtml dtd,但是文档包含旧样式的html标记,这是不合适的。同样,如果doctype声明指定html dtd,但文档包含xhtml 1.0严格标记,也是不合适的。如果没有指定有效的doctype声明,大多数浏览器将使用内置的默认dtd。在这种情况下,浏览器将使用内置的dtd来尝试显示您指定的标记(但这是页面写得不好时的方式)。我看了看JD.COM,淘宝,博客公园,他们都用这个(我一直用这个):doctype HTML public '-//W3C//dtd XHTML 1.0 Transitional//en ' ' http://www.w3.org/tr/XHTML 1/dtd/XHTML 1-Transitional . dtd '却发现百度和谷歌用“!”doctype html”,我仔细查了一下数据,发现HTML5也是直接使用的,但是因为HTML 5不是基于SGML的,所以不需要参考DTD,而是需要doctype来规范浏览器的行为(让浏览器按照应该的方式运行)。建议使用"!Doctype html ",使用!Doctype html将打开浏览器的标准兼容模式。在标准兼容模式下,不能保证与其他版本的Internet Explorer兼容(IE6之前,忽略即可)。文档的渲染行为可能和未来的Internet Explorer有所不同,但请放心使用~ ~小贴士: XHTML 1是HTML 4.01的XML化,是与未来不兼容的格式。HTML 4.01中的doctype需要引用DTD,因为HTML 4.01是基于SGML的。SGML指定了在文档中嵌入描述标签的标准格式和描述文档结构的标准方法。目前在网上使用的HTML格式是一个带有固定标签集的SGML文档。
29
2022-11
01
2022-10
25
2022-09
25
2022-09
16
2022-09
15
2022-09