当前位置: 首页 > news >正文

CSS——重排和重绘

1.概念

重排(Reflow)与重绘(Repaint)是浏览器渲染管线中的两个关键环节,直接决定页面性能。重排一定触发重绘,重绘不一定触发重排。

1.2 重排(Reflow)

重排 = Layout(布局) 阶段重新计算元素的几何信息(位置、大小)。触发条件:

典型代码说明
el.style.width = '200px'改变宽度
el.style.display = 'none'隐藏元素
el.classList.add('col-3')类名改变布局
dom.offsetHeight / getComputedStyle强制同步刷新
字体大小、内容变化、图片加载完成都会让浏览器重新算盒子
特点
  • 作用范围:从当前元素向上找定位祖先,向下找所有子节点,可能整页一起算。

  • 耗时:与 DOM 大小成正比,移动端尤其明显。

  • 阻塞后续 JS 执行(渲染线程和主线程互斥)。

1.3 重绘(Repaint)

重绘 = Paint 阶段重新绘制像素(颜色、阴影、文字等)。触发条件:

典型代码说明
el.style.color = 'red'改文字颜色
el.style.boxShadow = '...'改阴影
el.style.visibility = 'hidden'visibility 隐藏仍占位,不影响布局
特点
  • 跳过 Layout 阶段,比重排便宜(性能:重排 > 重绘),但仍需重新绘制像素。

  • 若元素在独立合成层(will-change、transform、opacity),可直接 GPU 合成,连 Paint(绘制) 都跳过

2.扩展

2.1 translate去改变位置——减少重排

translate代替传统定位方式(top、left、right、bottom),它操作的是合成层而不是布局层,所以浏览器不会因位置改变而重新布局。

新版本浏览器会自动将元素提升为独立合成层,而旧版本需要will-change: transform; 属性
// 手动提升为合成层属性
will-change: transform;   /* 最标准 */
transform: translateZ(0); /* 传统 hack */

http://www.dtcms.com/a/410425.html

相关文章:

  • nfs存储卷,rc,deploy,ds控制器及kube-proxy工作原理和metallb组件
  • 利用几种阈值法从给定的图像中分割出目标,去除背景
  • 编程技术杂谈5.0
  • 上海网站seoseodian闲置电脑做网站服务器
  • SSM(MybatisPlus)
  • Qt线程的两种使用方式
  • 怎么自己做礼品网站企业培训课程分类
  • 在 openEuler 上排查 Docker 同桥网络不通:从“全线超时”到定位容器没启动
  • vector深度求索(上)实用篇
  • 筛选选功能形网站建设东营网站设计
  • 创建一个网站的英文wordpress 版本查询
  • DevEco Studio 编辑器的使用
  • VSCode中Python库识别的设置(关于解决VSCode中Python库引入未下载的库不显示黄色虚线的问题)
  • 网站你懂我意思正能量app阿里云Windows建立WordPress
  • K8s学习笔记(八) K8s资源对象
  • 医疗数据集成的挑战,iPaaS 如何保障隐私与安全?
  • 【金仓数据库产品体验官】Windows 安装 KingbaseES V9R1C10 与 Oracle 兼容特性实战
  • 阿里云建站流程集约化网站建设
  • Classic McEliece:后量子密码的“元老”与NIST标准化的启示
  • 【论健康】健康的不可能三角
  • 19C数据库提示ORA-65096: 公用用户名或角色名无效(详细操作版)
  • 软考中级习题与解答——第十三章_数据库分析与设计(2)
  • tomcat升级操作
  • 广州高端品牌网站建设后台管理便捷蜜雪冰城推广软文
  • 基于 SpringBoot+Logicflow 的轻流程任务执行
  • 基础组合计数(三道例题)
  • ShardingSphere 与分库分表:分布式数据库中间件实战指南
  • 《三重AI协作交易系统:从技术债泥潭到毫秒级响应的实战笔记》
  • AI 赋能楼宇自控 DDC 系统:重构智慧建筑的核心引擎
  • 更改wordpress密码上海关键词优化排名哪家好