什么是事件委托?为什么要用事件委托?
事件委托就是利用事件冒泡机制指定一个事件处理程序,来管理某一类型的所有事件。
即:利用冒泡的原理,把事件加到父级上,触发执行效果。
使用委托可以将同类型的方法绑定到同一个变量上,当调用此变量时就可以一次调用绑定的方法,很方便。
什么是盒模型
元素的外边距(margin)、边框(border)、内边距(padding)、内容(content)就构成了CSS盒模型。
盒模型的宽度或者高度计算方式为:width/height = content + padding + border
W3C盒模型的宽度或者高度计算方式为:width/height = content。
行内、块元素、空元素分别举例
行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:br、meta、hr、link、input、img
src和href的区别
href标识超文本引用,用在link和a等元素上,href是引用和页面关联,是在当前元素和引用资源之间建立联系
src表示引用资源,表示替换当前元素,用在img,script,iframe上,src是页面内容不可缺少的一部分。
link和import的区别
区别1:link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
区别4:ink支持使用Javascript控制DOM去改变样式;而@import不支持。
从属关系
1.1 link:link是HTML提供的标签,不仅可以加载CSS,还可以定义rel等属性
1.2 @import:@import是css提供的语法,只有导入样式表的作用
加载顺序
2.1 link:link在页面加载时CSS同时被加载
2.2 @import:引入的CSS要等页面加载完毕后再加载
兼容性问题
3.1 link是HTML提供的语法,不存在兼容性问题
3.2 @import是css2.1提供的语法,ie5以上才兼容
DOM可控性
js控制DOM时,可以通过插入link标签来改变样式,不能通过@import改变
权重问题(有争议)
link标签引入的样式权重大于@import标签
HTML5为什么只需要写 < !
HTML5不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。
而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型
doctype作用,标准模式和兼容模式有什么区别
<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行。
在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器行为以防止站点无法工作。
请写出HTML5新增的API
(1)绘画 canvas;
(2)用于媒介回放的 video 和 audio 元素;
(3)本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
(4)sessionStorage 的数据在浏览器关闭后自动删除;
(5)语意化更好的内容元素,比如 article、footer、header、nav、section;
(6)表单控件,calendar、date、time、email、url、search;
(7)新的技术webworker, websocket, Geolocation
css优先级如何计算
1.CSS优先级比较
!important > 内联样式 > id > class > 标签 > 通配符 > 继承 > 默认
2.CSS权重计算
我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值。
4个等级的定义如下:
第一等:代表内联样式,如: style=””,权值为1000。
第二等:代表ID选择器,如:#content,权值为0100。
第三等:代表类,伪类和属性选择器,如.content,权值为0010。
第四等:代表标签选择器和伪元素选择器,如div p,权值为0001。
第五等:通用选择器(*),子选择器(>),相邻同胞选择器(+),权值为0000