Q: doctype
(文档类型)的做用是什么?css
A: 在HTML中 doctype
有两个主要目的。html
它告诉用户代理和校验器这个文档是按照什么DTD 写的。这个动做是被动的,每次页面加载时,浏览器并不会下载DTD 并检查合法性,只有当手动校验页面时才启用。前端
对于实际操做,通知浏览器读取文档时用哪一种解析算法。若是没有写,则浏览器则根据自身的规则对代码进行解析,可能会严重影响HTML 排版布局。浏览器有三种方式解析HTML文档。git
关于IE浏览器的文档模式,浏览器模式,严格模式,怪异模式,DOCTYPE标签,可详细阅读模式?标准!的内容。github
Q: 浏览器标准模式和怪异模式之间的区别是什么?web
A: 在“标准模式”(Standards Mode) 页面按照 HTML 与 CSS 的定义渲染,而在“怪异模式”(Quirks Mode)就是浏览器为了兼容很早以前针对旧版本浏览器设计、并未严格遵循 W3C 标准的网页而产生的一种页面渲染模式。浏览器基于页面中文件类型描述的存在以决定采用哪一种渲染模式;若是存在一个完整的DOCTYPE
则浏览器将会采用标准模式,而若是它缺失则浏览器将会采用怪异模式。面试
强烈建议阅读加深理解:怪异模式(Quirks Mode)对 HTML 页面的影响,这里列下浏览器标准模式和怪异模式的区别:算法
盒模型:数据库
在怪异模式下,盒模型为IE盒模型而非标准模式下的W3C 盒模型:在 IE 盒模型中,
box width = content width + padding left + padding right + border left + border right,
box height = content height + padding top + padding bottom + border top + border bottom。
而在 W3C 标准的盒模型中,box 的大小就是 content 的大小。浏览器
图片元素的垂直对齐方式:
对于inline
元素和table-cell
元素,在 IE Standards Mode 下 vertical-align 属性默认取值为baseline
。而当inline
元素的内容只有图片时,如table
的单元格table-cell
。在 IE Quirks Mode 下,table
单元格中的图片的 vertical-align
属性默认为bottom
,所以,在图片底部会有几像素的空间。
<table>
元素中的字体:
CSS 中,描述font
的属性有font-family
,font-size
,font-style
,font-weigh
,上述属性都是能够继承的。而在 IE Quirks Mode 下,对于table
元素,字体的某些属性将不会从body
或其余封闭元素继承到table
中,特别是 font-size
属性。
内联元素的尺寸:
在 IE Standards Mode 下,non-replaced inline 元素没法自定义大小,而在 IE Quirks Mode 下,定义这些元素的width
和height
属性,可以影响该元素显示的大小尺寸。
元素的百分比高度:
CSS 中对于元素的百分比高度规定以下,百分比为元素包含块的高度,不可为负值。若是包含块的高度没有显式给出,该值等同于“auto”(即取决于内容的高度)。因此百分比的高度必须在父元素有声明高度时使用。
当一个元素使用百分比高度时,在 IE Standards Mode 下,高度取决于内容的变化,而在 Quirks Mode 下,百分比高度则被正确应用。
元素溢出的处理:
在 IE Standard Mode 下,overflow
取默认值 visible
,即溢出可见,这种状况下,溢出内容不会被裁剪,呈如今元素框外。而在 Quirks Mode 下,该溢出被当作扩展box
来对待,即元素的大小由其内容决定,溢出不会被裁剪,元素框自动调整,包含溢出内容。
Q: 使用 XHTML 的局限有哪些?
A: xhtml 语法要求严格,必须有head
、body
每一个dom 必需要闭合。空标签也必须闭合。例如<img />
, <br/>
, <input />
等。另外要在属性值上使用双引号。一旦遇到错误,马上中止解析,并显示错误信息。
若是页面使用'application/xhtml+xml',一些老的浏览器会不兼容。
Q: 若是网页内容须要支持多语言,你会怎么作?
A: 编码使用UTF-8
,空间域名须要支持多浏览地址,准备多套模板。
在设计和开发多语言网站时,须要考虑
Q: data-
属性的做用是什么?
A: data-
为前端开发者提供自定义的属性,这些属性集能够经过对象的dataset
属性获取,不支持该属性的浏览器能够经过getAttribute
方法获取:
<div data-author="david" data-time="2011-06-20" data-comment-num="10">...</div>
div.dataset.commentNum; // 10
须要注意的是,data-
以后的以连字符分割的多个单词组成的属性,获取的时候使用驼峰风格。并非全部的浏览器都支持.dataset
属性,测试的浏览器中只有Chrome 和Opera 支持。
即:当没有合适的属性和元素时,自定义的 data 属性是可以存储页面或 App 的私有的自定义数据。
Custom data attributes are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.
Q:若是把 HTML5 看做作一个开放平台,那它的构建模块有哪些?
A: 开放网络平台:
The Open Web Platform is the collection of open (royalty-free) technologies which enables the Web. Using the Open Web Platform, everyone has the right to implement a software component of the Web without requiring any approvals or waiving license fees.
开放网络平台(Open Web Platform)是一些开放的(免版权)技术的集合,这些技术激活了互联网。使用开放网络平台时,每一个人都有权实现 Web 上的一个组件,而不用向任何人索取许可和证书。
将 HTML5 看作开放网络平台,那它的构建模块有哪些?我想,所谓构建模块,指的应该是开放网络平台这个技术集合中的技术。
该答案引自: http://witcher42.github.io/2014/06/03/open-web-platform/
Q: 请描述一下 cookies,sessionStorage 和 localStorage 的区别?
A: sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,能够方便的在web请求之间保存数据。有了本地数据,就能够避免数据在浏览器和服务器间没必要要地来回传递。
sessionStorage、localStorage、cookie都是在浏览器端存储的数据,其中sessionStorage 的概念很特别,引入了一个“浏览器窗口”的概念。sessionStorage 是在同源的同学口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即便刷新页面或进入同源另外一页面,数据仍然存在。关闭窗口后,sessionStorage 即被销毁。同时“独立”打开的不一样窗口,即便是同一页面,sessionStorage 对象也是不一样的
cookies会发送到服务器端。其他两个不会。
Microsoft 指出 Internet Explorer 8 增长cookie 限制为每一个域名50个,但IE7 彷佛也容许每一个域名50个cookie。Firefox 每一个域名cookie 限制为50个。Opera每一个域名cookie 限制为30个。Firefox 和Safari 容许cookie 多达4097个字节,包括名(name)、值(value)和等号。Opera 许cookie 多达4096个字节,包括:名(name)、值(value)和等号。Internet Explorer 容许cookie 多达4095个字节,包括:名(name)、值(value)和等号。
请描述一下 GET
和 POST
的区别?
A: 区别以下:
& | get | post |
---|---|---|
后退/刷新 | 无害 | 请求从新提交 |
书签 | 可作书签 | 不可作 |
缓存 | 可被缓存 | 不能被缓存 |
历史 | 保留在浏览器记录里 | 不保留 |
对数据长度限制 | 限制(2048字符) | 不限制 |
安全性 | url中暴露数据 | 相对安全 |
可见性 | url中可见 | 不可见 |
总结:
tips: 以上部分答案参考自: