前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS硬件加速

CSS硬件加速

作者头像
chuckQu
发布2022-08-19 14:15:32
5770
发布2022-08-19 14:15:32
举报
文章被收录于专栏:前端F2E

近些年,我们总是听到硬件加速,以及它如何帮助我们提升网页的动画性能,让网页动画变得更好,在移动端更流畅。那么什么是硬件加速?如何触发硬件加速呢?

定义

css大部分样式还是通过cpu来计算的,但 css中也有一些 3d的样式和动画的样式,计算这些样式同样有很多重复且大量的计算任务,可以交给gpu来跑。

那么,使用gpu来渲染css的技术就是硬件加速。

触发

浏览器在处理下面的 css 的时候,会使用 gpu 渲染:

  • transform
  • opacity
  • filter
  • will-change

注意的是 gpu 硬件加速是需要新建图层的,而把该元素移动到新图层是个耗时操作,同时也会增加内存的使用。因此不能滥用硬件加速。

属性详情

CSStransform属性允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。

一般来说,可以通过指定以下属性来显示声明使用硬件加速:

代码语言:javascript
复制
transform: rotate3d(0, 0, 0);

opacity属性指定了一个元素的「不透明度」

opacity属性的值应用于某个元素上时,是把这个元素(包括它的内容)当成一个「整体」看待,即使这个值没有被子元素继承。因此,一个元素和它包含的子元素都会具有和元素背景相同的透明度,哪怕这个元素和它的子元素有不同的opacity属性值。

使用opacity属性,当属性值不为1时,会把元素放置在一个新的「层叠上下文」中。

根据属性的定义,可以通过以下方式来显示声明使用硬件加速:

代码语言:javascript
复制
opacity: 0.99;

filterCSS属性将模糊或颜色偏移等图形效果应用于元素。

最常用的应该是哀悼日时,通过设置filter: grayscale(100%);进行全站的灰化。

可以通过以下方式来显示声明使用硬件加速:

代码语言:javascript
复制
filter: opacity(100%);

will-change提供了一种告知浏览器该元素会有哪些变化的方法,这样浏览器可以在元素属性真正发生变化之前提前做好对应的优化准备工作。

使用该属性「需要注意」

  • 不要将 will-change 应用到太多元素上。
  • 有节制地使用。
  • 不要过早应用 will-change 优化。
  • 给它足够的工作时间。

如果我们需要使用opacity来开启硬件加速,可以这么声明:

代码语言:javascript
复制
will-change: opacity;
opacity: 0.99;

验证

如果我们指定了上述的属性,接下来如何进行验证是否生效呢?

步骤如下:

  1. 打开Chrome的开发者工具;
  2. 打开Rendering面板;
  3. 勾选Layer borders

然后会发现页面上出现蓝色和黄色的框。蓝色的是 cpu 渲染的,而黄色的是 gpu 渲染的。

总结

本文总结了触发CSS硬件加速的方式,以及属性的详情介绍。同时还介绍了验证硬件加速是否生效的方法。

最后需要我们注意的是,要有节制的使用硬件加速, 给它足够的工作时间。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端F2E 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 触发
  • 属性详情
  • 验证
  • 总结
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档