大家都知道doctype声明是写在html文档最顶部的,这个声明告诉浏览器将以哪种规范或者哪个版本来解析你的html dom内容。而且HTML5以后呢,写法统一了。这里丝毫没有考点啊,面试中最容易中招的就是我们习以为常的东西,每天都接触的东西,但是却容易忽略的东西。其实很多原理性的东西倒还好,谁面试前不准备准备,使劲儿背一背,反正面试官看过原理代码的也不多,但这些基础东西却很容易让人发蒙。
- html>
- <html>
- <head>
- ......
- head>
- <body>
- ......
- body>
- html>
声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。
在 HTML 4之前, 声明需引用 DTD (文档类型声明),因为 HTML 4之前 是基于 SGML (Standard Generalized Markup Language 标准通用标记语言)。DTD 指定了标记语言的规则,确保了浏览器能够正确的渲染内容。
HTML5 不是基于 SGML,因此不要求引用 DTD。
所以,这里你需要重点记住DTD和SGML这两个词,做开发大家都是写代码,那怎么能比那些小low low 高级一些呢,当然是能够说出一些名词啦
- // HTML 4.01 Strict
- // 这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。
-
- HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-
- // HTML 4.01 Transitional
- // 这个 DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。
-
- HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-
- // HTML 4.01 Frameset
- // 这个 DTD 与 HTML 4.01 Transitional 相同,但是允许使用框架集内容。
-
- HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-
- // XHTML 1.0 Strict
- // 这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。结构必须按标准格式的 XML 进行书写。
-
- html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-
- // XHTML 1.0 Transitional
- // 这个 DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。结构必须按标准格式的 XML 进行书写。
-
- html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
- // XHTML 1.0 Frameset
- // 这个 DTD 与 XHTML 1.0 Transitional 相同,但是允许使用框架集内容。
-
- html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-
-
- // XHTML 1.1
- // 这个 DTD 与 XHTML 1.0 Strict 相同,但是允许您添加模块(例如为东亚语言提供 ruby 支持)。
-
- html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
大概是有7种,如上代码片段。是都要记下来吗?当然不是,着谁记得住啊。只要记住3个重点就可以了。严格模式(或者是标准模式,HTML 4.01 Strict)、兼容模式(HTML 4.01 Transitional)还有XTHML的时候的写法,而且你甚至不用给面试官说各种的写法,说出有这3种东西就行。
因为现在大家几乎都用HTML5标准了,一旦面试官问这个问题,那么这个公司可能是一个传统企业的技术团队,他们需要用到之前的技术来做前端页面。所以即便面试通过了,你要思考是否要去一个传统行业,做着旧技术,甚至他们可能还在大量的用着jquery,(禅道很多人都用过吧),还是希望去一个新的互联网公司,不断尝试新技术。
既然气氛都烘托到这里了,你都来面试了,肯定逃不掉这两种模式的区别。其实现在很多人都用不到了,更别提区别了。但有一说一,你能说出来,对于你的工作经验表现还是有一定的作用的,也许你就是那个最靓的仔。毕竟公司都喜欢经验多的,阅历丰富的,最好还是工资低一点的。
盒模型:严格模式获取的元素宽度就是width值
兼容模式更像display: flex-box 宽度 = width + padding + border
兼容模式下可以给类似span这种行内元素设置width 和 height ,是不是很神奇
兼容模式下我们非常喜欢的margin: 0 auto;会失效,是不是也很神奇。
这里基本记住这3条也就可以啦