1. DOCTYPE有什么作用?标准模式与混杂模式如何区分?它们有何意义?
答:
告诉浏览器使用哪个版本的HTML规范来渲染文档。DOCTYPE不存在或形式不正确会导致HTML文档以混杂模式呈现。
标准模式(Standards mode)以浏览器支持的最高标准运行;混杂模式(Quirks mode)中页面是一种比较宽松的向后兼容的方式显示。
2.HTML5为什么只需要写 <!DOCTYPE HTML>?
答:
HTML5不基于SGML(Standard Generalized Markup Language 标准通用标记语言),因此不需要对DTD(DTD 文档类型定义)进行引用,但是需要DOCTYPE来规范浏览器行为。
3.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
答:
行内元素:a span img input select
块级元素:div ul ol li dl dt dd h1 p
空元素:<br> <hr> <link> <meta>
4.
页面导入样式时,使用link和@import有什么区别?
答:
- link是xhtml标签,除了加载css外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS
- link引用CSS时候,页面载入时同时加载;@import需要在页面完全加载以后加载,而且@import被引用的CSS会等到引用它的CSS文件被加载完才加载
- link是xhtml标签,无兼容问题;@import是在css2.1提出来的,低版本的浏览器不支持
- link支持使用javascript控制去改变样式,而@import不支持
- link方式的样式的权重高于@import的权重
- import在html使用时候需要
<style type="text/css">
标签
5.无样式内容闪烁(FOUC)Flash of Unstyle Content
答:
@import导入CSS文件会等到文档加载完后再加载CSS样式表。因此,在页面DOM加载完成到CSS导入完成之间会有一段时间页面上的内容是没有样式的。
解决方法:
使用link标签加载CSS样式文件。因为link是顺序加载的,这样页面会等到CSS下载完之后再下载HTML文件,这样先布局好,就不会出现FOUC问题。解决方法:使用link标签加载CSS样式文件。因为link是顺序加载的,这样页面会等到CSS下载完之后再下载HTML文件,这样先布局好,就不会出现FOUC问题。
6.介绍一下你对浏览器内核的理解
答:
主要分成两部分:渲染引擎(Layout Engine或Rendering Engine)和JS引擎。
渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
JS引擎:解析和执行javascript来实现网页的动态效果。
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
7.常见的浏览器内核有哪些?
答:
- Trident( MSHTML ):IE MaxThon TT The World 360 搜狗浏览器
- Geckos:Netscape6及以上版本 FireFox Mozilla Suite/SeaMonkey
- Presto:Opera7及以上(Opera内核原为:Presto,现为:Blink)
- Webkit:Safari Chrome
8.HTML5有哪些新特性,移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5
答:
新增加了图像、位置、存储、多任务等功能。
新增元素:
- canvas
- 用于媒介回放的video和audio元素
- 本地离线存储。localStorage长期存储数据,浏览器关闭后数据不丢失;sessionStorage的数据在浏览器关闭后自动删除
- 语意化更好的内容元素,比如 article footer header nav section
- 位置API:Geolocation
- 表单控件,calendar date time email url search
- 新的技术:web worker(web worker是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行) web socket
- 拖放API:drag、drop
移除的元素: