web前端面试题附答案007-面试官问DOCTYPE声明你要注意啦

一、面试官想考什么?

大家都知道doctype声明是写在html文档最顶部的,这个声明告诉浏览器将以哪种规范或者哪个版本来解析你的html dom内容。而且HTML5以后呢,写法统一了。这里丝毫没有考点啊,面试中最容易中招的就是我们习以为常的东西,每天都接触的东西,但是却容易忽略的东西。其实很多原理性的东西倒还好,谁面试前不准备准备,使劲儿背一背,反正面试官看过原理代码的也不多,但这些基础东西却很容易让人发蒙。

<!DOCTYPE html>
<html>
    <head>
        ......
    </head>
    <body>
        ......
    </body>
</html>

二、为什么H5以后就单纯的写<!DOCTYPE html>就可以了呢?

<!DOCTYPE> 声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。

在 HTML 4之前,<!DOCTYPE> 声明需引用 DTD (文档类型声明),因为 HTML 4之前 是基于 SGML (Standard Generalized Markup Language 标准通用标记语言)。DTD 指定了标记语言的规则,确保了浏览器能够正确的渲染内容。

HTML5 不是基于 SGML,因此不要求引用 DTD。

所以,这里你需要重点记住DTDSGML这两个词,做开发大家都是写代码,那怎么能比那些小low low 高级一些呢,当然是能够说出一些名词啦

三、那么HTML4的时候,都有哪些声明呢?

// HTML 4.01 Strict
// 这个 DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">


// HTML 4.01 Transitional
// 这个 DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。

<!DOCTYPE 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 相同,但是允许使用框架集内容。

<!DOCTYPE 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 进行书写。

<!DOCTYPE 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 进行书写。

<!DOCTYPE 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 相同,但是允许使用框架集内容。

<!DOCTYPE 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 支持)。

<!DOCTYPE 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条也就可以啦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经海路大白狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值