1. CSS的盒模型
两种盒模型区别,
一种是W3C的标准盒子模型,称为标准盒模型;
另一种是IE标准的盒子模型,称为怪异盒模型
在标准盒子模型中,width和height指的都是内容区域,盒子大小为:content+border+padding+margin
在怪异盒子模型中,width和height指的是除了margin之外的内容,盒子大小与标准盒模型一样。
解决方法:
通过属性box-sizing进行解析盒模型
(1) content-box可以理解为标准盒模型
(2) border-box可以理解为怪异盒模型
2. CSS 权重问题
继承或者*(通配符)< 标签选择器 < 类选择器和伪类选择器 < ID选择器 < 行内样式< !important
继承或者*(通配符)【0,0,0,0】
标签选择器 【0,0,0,1】
类选择器和伪类选择器 【0,0,1,0】
ID选择器 【0,1,0,0】
行内样式 【1,0,0,0】
!important 无穷大
3. 元素的隐藏问题
display:none占据的空间会消失
visibility:hidden占据的空间不会消失
overflow:hidden 防止溢出的用来
opacity:0 通过设置透明度显示的
position:通过设置定位,可以把元素定在可视区域的外面
display:none每次修改都会引起回流以及重绘,visibility:hidden仅仅会引起重绘,所以使用上display:none在性能上不是很占优势。
4. position定位
静态定位:static
默认值,不会脱离文档流,top,right,bottom,left属性使用不生效
绝对定位:absolute
脱离了文档流,绝对定位的关键是找同样是定位的参照物,如果找不到就是相对浏览器进行定位,不可以使用margin:auto,但是可以使用:top,right,bottom,left属性
相对定位:relative
移动参照的是元素偏移之前的位置,margin:auto有效,不会脱离文档流
固定定位:fixed
参照的是浏览器的窗口,会脱离文档流。页面滚动时,定位元素也不会进行移动
5. 清除浮动的原因
浮动元素脱离了文档流,不占据空间。
清除浮动的原因:
元素浮动之后,父元素的高度无法被撑开,影响了布局。 与浮动父子同级的非浮动盒子会跑到该浮动盒子的下面
清除浮动的方法:
给父盒子设置clear:both 给父盒子添加clearfix样式 给父盒子设置双伪元素法 给父盒子设置overflow:hidden
6. JavaScript的类型
基本类型:Number,String, Boolean, Null, undefined
引用类型:Function,Object,Array
undefined:表示声明但没有初始化
出现情况:
1.访问声明,但是没有初始化
2.访问不存在的属性
3.访问函数的参数没有被显示的传递值
4.访问任何被设置为undefined值的变量
5.没有定义return的函数隐式返回
6.函数return没有显示的返回任何内容
null:表示准备用来保存对象,但还没有真正的保存对象,可以认为是一个空指针。
是原型链的终点
7. 判断数据类型
typeof
判断原始数据类型,除了null不可以识别,剩下的都可以,想要判断是否为null,可以通过===判断
instanceof
一般用来判断引用数据类型
Object.prototype.toString.call()
这个方法没有办法区别数字类型和数字对象类型,字符串和字符串对象类型,布尔类型和布尔对象类型
8. 伪数组和真数组的比较
伪数组:具有length属性,也可以按照索引存储数据,但是不具有数组的一系列方法。 可以使用Array.from()把伪数组转化成真数组
9. 作用域链
当代码在一个环境中执行时,就会产生变量对象的一个作用域链,由子级作用域返回父级作用域寻找变量,就叫做作用域链。可以一直寻找到最后一个对象。
10.事件的三要素
(1)事件源 (2)事件类型 (3)事件处理函数