1.说一下css盒模型
2.画一条0.5px的线
<meta name="viewport" content="width=device-width, initial-scale=0.5, minimum-scale=0.5, maximum-scale=0.5"/>
或者border-image,transform:scale()方式
3.link标签和import标签的区别
link属于html标签,import则是由css提供
页面被加载时,link会同时被加载,而import引用的css会等到页面加载结束时加载
link是html标签,因此没有兼容性,而import在ie5以上才能识别
link方式样式的权重高于import
4.js动画和css3动画的差异
功能涵盖面:js比css大
css比js更加简单,性能跳优方向固定
对帧速表现不好的低版本浏览器,css3可以做到自然降级
css动画有天然事件支持
css3有兼容性问题
5.说一下块级元素和行级元素
块元素:独占一行,并且有自动填满父元素,可以设置margin和padding以及width height。
行元素:不会独占一行,width,height失效,并且在垂直方向的padding和margin会失效。
6.双边距重叠问题
多个相邻普通流的块元素锤石方向margin会重叠
折叠结果:
两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值
两个相邻的外边距都是负数时,折叠结果是它们两者之间绝对值较大的值
有正有负时,折叠结果是两者的相加的和
7.浮动清除
方法1:使用带clear属性的空元素,或者邻接元素处理
在浮动元素后使用一个空元素如
<div class="clear"></div>
,并设置其css,
.clear{clear:both;}
即可清理浮动。
方法2:使用css的overflow属性
给浮动元素的容器添加
overflow:hidden;
或者
overflow:auto;
可以清除浮动.
方法3:伪元素处理
给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:afer伪元素实现元素末尾添加一个看不见的块元素清理浮动。
8.css的选择器
id选择器,class选择器,标签选择器,伪元素选择器,伪类选择器
带有!important标记的样式属性优先级最高
9.如何让一个元素消失
三种方式:
display:none;
visibility:hidden;
opacity:0;
10.重绘和重排
DOM的变化影响到了预算的几何属性如宽高,浏览器重新计算元素的几何属性,其他元素的几何属性也会受到影响,浏览器需要重新构造渲染书,这个过程称之为重排,浏览器将受到影响的部分重新绘制在屏幕上的过程称为重绘,
引起重排重绘的原因:
添加或者删除可见的DOM元素
元素尺寸位置的改变
浏览器页面初始化
浏览器窗口大小发生改变,重排一定导致重绘,重绘不一定导致重排
减少重绘重排的方法:
不在布局信息改变时做DOM查询
使用csstext,className一次性改变属性
使用fragment
对于多次重排的元素,比如动画,使用绝对定位脱离文档流,使其不影响其他元素