Doctype 作用?标准模式与兼容模式各有什么区别?
DOCTYPE 是用来声明文档类型和 DTD 规范的。
<!DOCTYPE html>
声明位于 HTML 文档中的第一行,不是一个 HTML 标签,处于 html 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。标准模式的排版 和 JS 运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
定义:CSS 规范规定,每个元素都有 display 属性,确定该元素的类型,每个元素都有默认的 display 值,如 div 的 display 默认值为“block”,则为“块级”元素;span 默认 display 属性值为“inline”,是“行内”元素。
- 行内元素有:a b span img input select strong(强调的语气)
- 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p
- 空元素:
- 常见: br hr img input link meta
- 不常见: area base col command embed keygen param source track wbr
canvas 和 svg 的区别
canvas 是 html5 提供的新元素<canvas>,而 svg 存在的历史要比 canvas 久远,已经有十几年了。svg 并不是 html5 专有的标签,最初 svg 是用 xml 技术(超文本扩展语言,可以自定义标签或属性)描述二维图形的语言。在 H5 中看似 canvas 与 svg 很像,但是,他们有巨大的差别。
canvas 可以看做是一个画布。,其绘制出来的图形为标量图,因此,可以在 canvas 中引入 jpg 或 png 这类格式的图片,在实际开发中,大型的网络游戏都是用 canvas 画布做出来的,并且 canvas 的技术现在已经相当的成熟。另外,我们喜欢用 canvas 来做一些统计用的图表,如柱状图曲线图或饼状图等。
而 svg,所绘制的图形为矢量图,所以其用法上受到了限制。因为只能绘制矢量图,所以 svg 中不能引入普通的图片,因为矢量图的不会失真的效果,在项目中我们会用来做小图标。但是由于其本质为矢量图,可以被无限放大而不会失真,这很适合被用来做地图,而百度地图就是用 svg 技术做出来的。
介绍一下你对浏览器内核的理解?
主要分成两部分:渲染引擎(layout engineer 或 Rendering Engine)和 JS 引擎。
渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后渲染到用户的屏幕上。
JS 引擎则:解析和执行 javascript 来实现逻辑和控制 DOM 进行交互。
最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。
如何让老版本IE也支持H5
你可以使用IE条件注释来调用这个js文件,这样像FireFox等非IE浏览器就会忽视这段代码,也就不会有无谓的http请求了。下面这段代码仅会在IE浏览器下运行:
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->以下是js文件中的代码:
(function(){if(!/*@cc_on!@*/0)return;var e = "abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".
split(','),i=e.length;while(i--){document.createElement(e[i])}})()