天天看点

前端面试硬核之复述性问题集合(CSS)

1.说一下css盒模型

前端面试硬核之复述性问题集合(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选择器,标签选择器,伪元素选择器,伪类选择器

前端面试硬核之复述性问题集合(CSS)

带有!important标记的样式属性优先级最高

前端面试硬核之复述性问题集合(CSS)

9.如何让一个元素消失

三种方式:

display:none;
visibility:hidden;
opacity:0;
           

10.重绘和重排

DOM的变化影响到了预算的几何属性如宽高,浏览器重新计算元素的几何属性,其他元素的几何属性也会受到影响,浏览器需要重新构造渲染书,这个过程称之为重排,浏览器将受到影响的部分重新绘制在屏幕上的过程称为重绘,

引起重排重绘的原因:

添加或者删除可见的DOM元素

元素尺寸位置的改变

浏览器页面初始化

浏览器窗口大小发生改变,重排一定导致重绘,重绘不一定导致重排

减少重绘重排的方法:

不在布局信息改变时做DOM查询

使用csstext,className一次性改变属性

使用fragment

对于多次重排的元素,比如动画,使用绝对定位脱离文档流,使其不影响其他元素