提升CSS渲染性能
2025-03-04
93 字约 1 分钟
...1. 提升CSS渲染性能:
①. 谨慎使用expensive属性:
a. 如:nth-child伪元素
b. position:fixed、absolute等
c. 这些是比较耗费浏览器的性能
②. 减少样式层级数:
a. div ul li span i {color: bule} => 直接给i添加一个class
b. 减少浏览器对css的查询
③. 尽量避免使用占用CPU和内存的属性:
a. 如:text-indent: -99999px(文字缩进)
(1). 值比较大
(2). text-indent比较耗费CPU
④. 尽量避免使用耗电量大的属性,使用到GPU加速的:
a. 如css3 transforms、 css3 transitions、Opacity
2. 合适使用css选择器:
①. 尽量避免使用css表达式:
a. 如background-color: expression((new Date()).getHours()%2 ? '#FFF': '#000');
②. 尽量避免使用通配选择器:
a. 如body > a { font-weight: bold; }
(1). 在body中可能有很多元素,需要在body所有元素中寻找这个选择器a,非常耗费性能.
③. 尽量避免类正则的属性选择器:
a. 如*=、|=、^=、$=
3. 提升css文件加载的性能:
①. 使用外链的css:
a. 内联的css是放在html文件中,不如用外链.
b. 外链的css文件可以放在cdn上,每次访问都有缓存,可以减少HTML页面体积的大小.
②. 尽量避免使用@import:
a. 在css文件中使用@import,会在加载css的时,需要将这些文件都加载进来. => 串行加载
b. 在外部引入css的话,浏览器支持并行下载.
c. 所以,使用@import会阻塞到css的加载,也会影响到js的加载.
4. 精简css代码:
①. 使用缩写语句:
a. 如margin-left、margin-right等,可以直接放在margin中设置.
②. 删除不必要的0:
a. 0.2em => 0可以删除
③. 删除不必要的单位:
a. 比如margin: 0px 0px 0px 10px => 这里的0后面的px可以删除
④. 删除过多的分号:
⑤. 删除空格和注释:
a. 可以借助压缩工具来处理.
⑥. 16进制颜色代码缩写:
a. color: #eebbcc; => #ebc;
⑦. 总结:
a. 尽量减少样式表的大小
b. 精简css代码
5. 合理使用web fonts:
①. 将web fonts的字体文件部署到cdn上.
②. 将字体以base64的形式保存在css中并通过localstorage进行缓存.
③. Google字体库因为某些不可抗拒的原因了,应该使用国内托管服务.
6. css动画优化:
①. 尽量避免同时动画:
a. 在一个用户访问屏幕的这个区间里面不要有过多的动画.
b. 动画太多首先会打乱用户预览网站的节奏.
c. 其次是影响浏览器的性能.
②. 延迟动画的初始化:
a. 可以先保证其他css正常的渲染,而动画可以延迟0.5 ~ 1秒才开始.
③. 结合svg:
a. 因为svg是矢量的,可以把动画放到svg中展示.
b. 其它的样式放到css中控制.如果您觉得这篇文章有帮助,请点个赞吧~
相关文章
更多文章 →css2025-03-04
CSS 实现文本省略显示【单行,2行,多行】
在 中,长文本内容可能会超出其容器的范围。为了保持良好的用户体验,我们通常会将超出的文本部分以省略号显示。本文将详细介绍如何在CSS中限制文本显示一行、两行或多行,超过部分显示省略号。 1\. 前言 限制文本显示长度并以省略号表示超出部分是常见的需求。通过CSS,可以简单地实现这一效果。我们将分别介绍单行文本、省略两行文本和多行文本的实现方法。 2\. 单行文本省略 要实现单行文本省略,主要使用以下CSS属性: : 禁止文本换行。 :...
学习面试
css2025-03-04
css中,有哪些方式可以隐藏页面元素?区别?
一、前言 在平常的样式排版中,我们经常遇到将某个模块隐藏的场景 通过 隐藏元素的方法有很多种,它们看起来实现的效果是一致的 但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法 二、实现方式 通过 实现隐藏元素方法有如下: display:none visibility:hidden opacity:0 设置height、width模型属性为0 position:absolute clip path dis...
学习面试
css2025-03-04
css实现正方形的几种方案及优缺点
前言 在电商、个人博客等网站我们或多或少都可以看到css正方形的应用场景,自适应正方形布局是必须要掌握的;接下来采黎带大家揭开css自适应正方形神秘的面纱 正方形 这很简单,设置盒子宽高都为200px就可以了 自适应正方形 青铜 提起自适应,想必都会想到 rem 、 vw 等相对单位,我们分别用这些单位来实现一下。 rem 屏幕宽度大于1200px时,字体为16px,rem的盒子的大小为 160px \ 160px; 屏幕宽度小于120...
学习面试
css2025-03-04
Flexbox 弹性布局
一、是什么 简称 box,意为”弹性布局”,是一种一维的布局模型。一次只能处理一个维度上的元素布局,一行或者一列。 采用Flex布局的元素,称为 容器( ),简称”容器“;它的所有子元素自动成为容器成员,称为 项目( ),简称”项目“。 容器中默认存在两条轴, 主轴 和 交叉轴 。项目默认沿主轴排列,通过 来决定主轴的方向。 每根轴都有起始线和终止线,用来描述flexbox元素的方向。 任何一个容器都可以指定为 布局。设为 Flex 布...
学习面试
css2024-08-29
CSS 终于在 2024 年增加了垂直居中功能
在 2024 年的 CSS 原生属性中允许使用 1 个 CSS 属性 进行垂直居中。 支持情况: | Chrome: 123 | Firefox: 125 | Safari: 17.4 | | | | | CSS 对齐一般会使用 或 布局,因为 在默认的流式布局中不起作用。在 2024 年,浏览器实现了 。 你不需要 flexbox 或 grid,只需要 1 个 CSS 属性就可以进行对齐。 因此内容不需要包裹在 div 中。 令人惊讶...
学习面试
css2024-08-29
伪类和伪元素是什么什么是伪类
什么是伪类 (pseudo classes)? 伪类可以让我们根据元素的状态变化使用 CSS。例如,当我们想要设置某元素在被指标指到时的样式,我们可以使用 伪类来改变样式。 介绍 4 个常见的伪类 (pseudo classes) 用法 当用户的鼠标或触控板等设备放在元素上时,我们可以使用 更改元素的样式。 、 这两个伪类都是用在含有 href 属性的 元素上。 可以调整使用者还未浏览过的链接样式,而 则可以改变使用者已浏览过的链接样式...
学习面试
评论
请登录后发表评论
去登录