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

前端性能优化-CSS 相关的性能优化策略

前言

本节总结 CSS 相关的性能优化策略

内联首屏关键 CSS

将首屏关键 CSS 直接内联在 HTML 文档中,减少首次渲染时的请求延迟。

<head><style>/* 关键CSS规则 */body {margin: 0;padding: 0;font-family: "Arial", sans-serif;/* 其他关键样式 */}</style>
</head>

异步加载 CSS

使用 rel="preload"异步加载 CSS 文件,以减少首屏渲染的阻塞。

<head><linkrel="preload"href="styles.css"as="style"onload="this.onload=null;this.rel='stylesheet'"/><noscript><link rel="stylesheet" href="styles.css" /></noscript>
</head>

css 文件压缩

用工具对 CSS 文件进行压缩,去除不必要的空格、注释,减小文件体积。

# 使用工具(例如UglifyCSS)压缩CSS文件
uglifycss input.css > output.min.css

合理使用选择器

避免使用过于复杂或冗长的选择器,选择器的匹配速度会影响页面性能。

/* 不推荐:过于复杂的选择器 */
ul li:first-child a.active {color: #ff0000;
}/* 推荐:简化选择器 */
.active-link {color: #ff0000;
}

减少使用昂贵的属性

尽量减少使用计算量大、触发回流和重绘的属性,如position: absolute, 而使用其他的方式替代

/* 不推荐:频繁使用position: absolute */
.element {position: absolute;top: 10px;left: 20px;
}/* 推荐:使用其他布局方式,避免频繁的重排和重绘 */
.element {margin-top: 10px;margin-left: 20px;
}

避免使用@import

避免使用@import 方式引入 CSS 文件,因为它会导致额外的请求,降低页面加载速度。

<!-- 不推荐:使用@import引入CSS文件 -->
<style>@import url("styles.css");
</style><!-- 推荐:直接使用link标签引入CSS文件 -->
<link rel="stylesheet" href="styles.css" />

本文首发于个人博客前端开发笔记,由于笔者能力有限,文章难免有疏漏之处,欢迎指正

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • <数据集>灭火器识别数据集<目标检测>
  • Centos7.9操作系统kdump crash文件vmcore未生成问题
  • Python酷库之旅-第三方库Pandas(067)
  • 排序算法:插入排序,golang实现
  • Java优化后台分页
  • 32-《蝴蝶兰》
  • STM32 驱动直流无刷电机(BLDC)发声
  • 使用Python编写文件重复检查器
  • ffmpeg-cavs识别广电流
  • OpenAI 取消为 ChatGPT 加水印计划,用户反应成关键因素|TodayAI
  • 1. protobuf学习
  • go语言flag库学习
  • 一个是生产打包的时候, 一个是本地测试启动的时候,maven如何配置?
  • 天地图按地名搜索+openlayer+vue3
  • 如何在IDEA上使用JDBC编程【保姆级教程】
  • 2017届校招提前批面试回顾
  • Docker: 容器互访的三种方式
  • HTTP 简介
  • Java多态
  • MySQL-事务管理(基础)
  • Python_网络编程
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • quasar-framework cnodejs社区
  • scala基础语法(二)
  • springboot_database项目介绍
  • 给第三方使用接口的 URL 签名实现
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 巧用 TypeScript (一)
  • 一份游戏开发学习路线
  • PostgreSQL之连接数修改
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $NOIp2018$劝退记
  • (1)Jupyter Notebook 下载及安装
  • (14)Hive调优——合并小文件
  • (C++17) std算法之执行策略 execution
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (三)uboot源码分析
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (四) Graphivz 颜色选择
  • (转)为C# Windows服务添加安装程序
  • .Mobi域名介绍
  • .Net Core与存储过程(一)
  • .Net 知识杂记
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .Net多线程Threading相关详解
  • /etc/sudoers (root权限管理)
  • @ModelAttribute注解使用
  • [ 蓝桥杯Web真题 ]-布局切换
  • []T 还是 []*T, 这是一个问题
  • []我的函数库