怎么清除浮动? 回答:1.为父元素添加overflow:hidden(目的是触发bfc);2.添加一个标签,并设置clear:both(缺点是语义化差);3.使用after伪类清除浮动(低版本不支持);4.使用before和after双伪类清除
重排和重绘分别是什么? 回答:重排:也叫回流,当渲染树的一部分必须更新并且节点的尺寸发生了变化,浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树。 重绘:是在一个元素的外观被改动所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现出新的外观,比如改变某个元素的背景颜色/文字颜色/边框颜色等等 触发重排的方式:1.添加或删除可见的dom;2.元素的位置改变;3.元素的尺寸改变(外边距,内边距,边框厚度,宽高,等几何属性);4.页面渲染初始化;5.浏览器窗口尺寸改变;6.获取某些属性时也会重排,它会导致队列刷新,这些属性包括:offsetTop、offsetLeft、 offsetWidth、offsetHeight、scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight、getComputedStyle() (currentStyle in IE)。