1、**Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
答:
1)<!Doctype>放置于文档中最前面,处于标签之前。告知当前浏览器的解析器以什么文档类型规范来解析该文档。
2)严格模式,又称标准模式,指浏览器按照W3C标准解析代码。
混杂模式,又称怪异模式或者兼容模式,指浏览器用自己的方式解析代码。
区分:浏览器解析时到底使用严格模式还是混杂模式,与网页中的 DTD 直接相关。
1、如果文档包含严格的 DOCTYPE ,那么它一般以严格模式呈现。(严格 DTD ——严格模式)
2、包含过渡 DTD 和 URI 的 DOCTYPE ,也以严格模式呈现,但有过渡 DTD 而没有 URI (统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现。(有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式)
3、DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现。(DTD不存在或者格式不正确——混杂模式)
4、HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。( HTML5 没有严格和混杂之分)
3)意义:**严格模式与混杂模式存在的意义与其来源密切相关,如果说只存在严格模式,那么许多旧网站必然受到影响,如果只存在混杂模式,那么会回到当时浏览器大战时的混乱,每个浏览器都有自己的解析模式。(资料来源 : 吴秋彤的博客)
2、**HTML5 为什么只需要写<!DOCTYPE HTML> ?**
答:HTML5不基于SGML,因此不需要引用DTD,但是需要doctype来规范浏览器的行为(按照他们应该的方式来解析当前文档),而HTML4.01基于SGML,需要对DTD进行引用,才能告知浏览器当前文档的解析类型。
3、**行内元素有哪些?块级元素有哪些? 空(void)元素有那些?**
答:行内元素:a、b、span、img、input、strong、select、label、em、button、textarea;
块级元素:div、 ul、 li、 dl、 dt、dd、p、 h1-h6、 blockquote;
空元素:没有内容的HTML元素,eg: br、meta、hr、link、input、img;
4、**页面导入样式时,使用link和@import有什么区别?**
答:外部引入样式的另一种方式:
1.历史差别。link属于XHTML标签,而@import完全是CSS提供的一种方式。link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。
2.加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显(梦之都加载CSS 的方式就是使用@import,一边下载一边浏览梦之都网页时,就会出现上述问题)。
3.兼容性的差别。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。
4.使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。(资料来源:luuu7的博客)
5、**介绍一下你对浏览器内核的理解?**常见的浏览器内核有哪些?
答:1)主要分为渲染引擎和JS引擎。
渲染引擎:负责取得网页的内容(html,xml和图像等),整理讯息(例如假如css),以及计算网页的显示方式,然后输出到显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不同。所有网页浏览器、电子邮件客户端以及它需要编辑、显示网络内容的应用程序都需要内核。
JS引擎:解析和执行JavaScript来实现网页的动态效果。
2)常见的浏览器内核:
Trident内核:IE,360,搜狗浏览器;
Gecko内核:Netscape6及以上版本;
Presto内核:Opera;
Blink内核:Opera;
Webkit内核:Safari,Chrome;
(资料来源:程序员的程)
6、**html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?**
答:1)
新特性:自行查找
移除的元素:
拖拽释放(Drag and drop) API
语义化更好的内容标签(header,nav,footer,aside,article,section)
音频、视频API(audio,video)
画布(Canvas) API
地理(Geolocation) API
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
sessionStorage 的数据在浏览器关闭后自动删除
表单控件,calendar、date、time、email、url、search
新的技术webworker, websocket, Geolocation
2)支持HTML5新标签: IE8/IE7/IE6支持通过 document.createElement 方法产生的标签,可以利用这一特性让这些浏览器支持 HTML5 新标签,浏览器支持新标签后,还需要添加标签默认的样式(当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架):
<!--[if lt IE 9]> <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script> <![endif]--> |
---|
3)区分:
DOCTYPE声明新增的结构元素、功能元素