重繪(repaint)與渲染(reflow)

repaint(重繪),repaint發生更改時,元素的外觀被改變,且在沒有改變佈局的狀況下發生,如改變outline、visibility、background-color,不會影響到dom結構渲染。dom

reflow(渲染),與repaint的區別就是他會影響到dom的結構渲染,同時他會觸發repaint,他會改變自己與全部父級元素(祖先),這種開銷是很是昂貴的,致使性能降低是必然的,頁面元素越多效果越明顯。佈局

display:none;和visibility:hidden;的區別就是:性能

  • display:none;不爲被隱藏的對象保留其物理空間,即看得見摸不着;
  • visibility:hidden;所佔據的空間位置仍然存在,僅爲視覺上的徹底透明;
  • display:none;會產生reflow(渲染);
  • visibility:hidden;只會觸發repaint(重繪);
相關文章
相關標籤/搜索