首页 > 其他分享 >优化 CSS 代码的12个小技巧

优化 CSS 代码的12个小技巧

时间:2023-03-07 19:14:21浏览次数:45  
标签:12 技巧 family 字体 使用 font 选择器 CSS

优化 CSS 代码的12个小技巧

2022-11-25 09:03·Echa攻城狮

 

大家好,我是 Echa。

今天来分享 12 个优化 CSS 代码小技巧!

1. 避免高消耗属性

分析表明,一些CSS属性的渲染速度比其他属性慢,因此应该谨慎使用。包括以下属性:

  • box-shadow
  • border-radius
  • position: fixed
  • transform
  • :nth-child
  • filter

上述属性都是对性能要求比较高的。如果这些属性使用较少,那这就不是问题。但是如果一个页面出现几百次,那么整体的CSS可能会受到影响,所以要谨慎使用。

2. 使用 <link> 代替 @import

@import 规则主要用于导入资源或者CSS文件。它会阻止其他文件并行下载,并可能会导致网站速度变慢。

❌ 不要在CSS中这样操作:

@import url("header.css");
@import url("slider.css");
@import url("content.css");
@import url("footer.css");

可以使用多个HTML 中的<link>标签来代替@import,它将并行加载CSS文件,可以在一定程度上提高应用的加载的速度。

✅ 可以在HTML这样操作:

<link rel="stylesheet" href="header.css">
<link rel="stylesheet" href="slider.css">
<link rel="stylesheet" href="content.css">
<link rel="stylesheet" href="footer.css">

3. 简化选择器

我们知道,有很多方法可以对 HTML 元素进行样式设置,而最复杂的 CSS 选择器可能需要几毫秒的时间来解析。降低选择器的复杂性就可以减少浏览器的负载并保持代码简洁明了。

❌ 避免这么写:

.container > div.links-container ul li .link {

}

✅ 可以这么写:

.container .link {

}

4. 避免使用 !Important

在一些时候,可以使用!Important 来提高样式的优先级,以使样式生效。除非没有别的办法,否则不要使用!Important。

添加 !Important CSS声明将覆盖掉其他对应的样式声明,如果CSS的规则中 !Important 太多,浏览器就必须对代码进行额外的检查,这可能会降低页面的加载速度。所以,尽量避免使用!Important。在很多情况下我们是可以通过选择器来实现样式重写的,除非是想要对第三方库的CSS进行重写。

5. CSS实现特效和SVG代替图片

页面中加载图像很可能需要很长的时间,尤其是在图像未针对web进行优化的情况下。在实现背景图、渐变、几何图形时,尽量少使用图片,而是使用CSS代码实现。使用 CSS 代码实现就会比图片加载速度更快。

还可以使用SVG来代替PNG或者JPG图片:

  • 可以给图片添加效果;
  • 图像加载速度更快;
  • 图像自动适应用户屏幕。

6. 压缩 CSS

我们可以通过压缩CSS文件来删除文件中所有的空白和不必要的代码来减少文件的大小。CSS文件变小了,加载的时间自然就变少了,页面的加载速度就会变。

7. 使用0而不是0px

当一个属性的值为0时,我们可以不添加任何单位。即不要这么写:0rem,0em,0px等。

当然,这么写是没有错的,但是这些单位是没有用的,当处理一个巨大的CSS文件时,没有单位会比有单位时文件小一点。

8. 使用十六进制而不是颜色名称

当我们将颜色设置为颜色名称时,浏览器就会花费更多时间来找出颜色的十六进制值。假如想使用红色,那设置为color:red之后,不同的浏览器显示效果可能是不一样的,作为开发人员,我们不能让浏览器来决定网页将如何显示。

因此,尽量使用使用十六进制(例如红色#ff0000)来定义颜色,就能确保在所有浏览器中以相同的色调准确得显示想要的颜色。

9. 避免过多 font-family

为每个选择器去定义字体并不是一个好的办法,它会导致代码很难维护,假如以后想要更改字体,就不得不在每个选择器中更改它。

因此不要像下面这样来定义字体:

h1 {
  font-family: Arial, Helvetica, sans-serif;
}

p {
  font-family: Arial, Helvetica, sans-serif;
}

.selection {
  font-family: Arial, Helvetica, sans-serif;
}

.footer {
  font-family: "Times New Roman", Times, serif;
}

可以在正文中定义要使用的字体,如果想要在其他选择器中覆盖该字体,就可以通过在该选择器中使用所需的字体来实现:

body{
  font-family: Arial, Helvetica, sans-serif;
}

footer{
  font-family: "Times New Roman", Times, serif";
}

如果页面中很多部分的字体都不尽相同,就可以将字体定义在 class 中,然后在需要的HTML标签上使用该class即可:

.font-helvetica {
  font-family: Arial, Helvetica, sans-serif;
}

.font-times {
  font-family: "Times New Roman", Times, serif";
}

10. 使用备用字体

有些情况下,应用中使用的字体可能在用户设备上不可用。在这种情况下,可以指定使用其他备用字体:

p{
  font-family: 'Open Sans', Arial, Helvetica, sans-serif;
}

这样,浏览器就会按顺序进行解析,直到解析到第一个可用的字体,如果都不可用,就会使用浏览器的默认字体。

11. 使用 CSS 重置

每个浏览器都有自己的 HTML 元素默认样式。假如有一个没有任何样式的 H1 元素,那么在默认情况下,在Firefox中,会给它一个上下为21.433px,左右为 0 的margin值。而在Safari中,会给它一个上下为21px,左右为 0 的margin值。

因此,重置CSS样式,一个很好的做法就是从头开始定义样式。很多开发人员会使用通用选择器(*)来执行基本重置:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

在使用通用选择器 (*) 进行重置有时会导致性能问题,因为它会针对每个标签去设置其样式。

可以使用一些常用的CSS重置代码库,比如normalize。也可以参考一些CSS重置的最佳实践。

12. 减少重复代码

当两个元素或选择器具有相同的 CSS 属性时,可以使用逗号来组合这些选择器,而不是重复声明样式,这样它们将共享 CSS 样式。

❌ 避免这样写:

.header {
  background-color: #fefefe;
  padding: 20px 0;
}

.footer {
  background-color: #fefefe;
  padding: 20px 0;
}

✅ 建议这样写:

.header,
.footer {
  background-color: #fefefe;
  padding: 20px 0;
}

标签:12,技巧,family,字体,使用,font,选择器,CSS
From: https://www.cnblogs.com/sexintercourse/p/17189213.html

相关文章

  • 48个高颜值的CSS在线工具大全
    48个高颜值的CSS在线工具大全原创2023-01-1308:00·Echa攻城狮 大家好,我是Echa。最近有一部分粉丝们总是私信小编,作为一个前端或者全栈程序员怎么系统化学CSS,怎么......
  • 分享12款我常用的开源免费软件
    分享12款我常用的开源免费软件原创2023-02-1613:40·趣谈前端作者:徐小夕来源:趣谈前端公众号嗨,大家好,我是徐小夕,在一个劳动力追求高性价的时代,我们无时无......
  • 3.7每日总结12
    今天用了一个半小时的时间边学习边做后台数据注册的内容,其中学习了如何在后台获取前台按钮的结果,和如何获取前台文本输入框的结果和提示框。详细代码如下 ......
  • 12N60-ASEMI高压MOS管12N60
    编辑-Z12N60在TO-220封装里的静态漏极源导通电阻(RDS(ON))为0.7Ω,是一款N沟道高压MOS管。12N60的最大脉冲正向电流ISM为48A,零栅极电压漏极电流(IDSS)为1uA,其工作时耐温度范......
  • CSS渐进增强方案
    首先需要明确一点,以往浏览器对css的支持是不同的,不同浏览器的样式可能会存在差异,对待这种差异问题,需要写几套不同的css来兼容(边框、圆角、颜色等),这样是非常麻烦的,浏览器css......
  • SPSS小技巧:调整输出结果中的小数点位数
    https://zhuanlan.zhihu.com/p/473444950?utm_id=0SPSS小技巧:调整输出结果中的小数点位数数据小兵​死磕数据统计分析方法,可答疑咨询 5人赞同......
  • 碎片化学习前端之CSS(var 函数)
    var函数CSS变量函数,用于取出CSS变量的值。变量的目的只有一个:复用。CSS变量是CSS3提出的,为CSS模块化配置提供了基础。var函数的基本用法var()函数接收两个......
  • 120. Triangle
    题目Givenatriangle,findtheminimumpathsumfromtoptobottom.Eachstepyoumaymovetoadjacentnumbersontherowbelow.Forexample,giventhe......
  • 《安富莱嵌入式周报》第305期:超级震撼数码管瀑布,使用OpenAI生成单片机游戏代码的可玩
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 说明:谢谢大家的关注,继续为大家盘点上周精彩内容。 视频版:h......
  • Linux备份与恢复使用技巧
    在日常的Linux系统运维中,备份和恢复是非常重要的操作,能够有效避免数据丢失和系统故障导致的影响。本文将介绍一些关于Linux系统备份和恢复的实用技巧,帮助管理员更好地管理......