避免使用CSS @import 影响页面加载速度

简介: 避免使用CSS @import 影响页面加载速度

本文翻译自 What Is CSS @import And Why Can It Slow Down Websites?,略有删改

CSS@import可以用来加载其他CSS样式的便捷方式,但是使用它也会使网站的资源呈现变得更慢,导致网站呈现的时间更长。

什么是CSS @import?

加载CSS文件最常见的方法是使用link标签:

<link rel="stylesheet" type="text/css" href="link.css" />

另一种方法是在另一个样式表中引用一个样式表,使用CSS中的@import "url":

@import "imported.css";
/*contents of link.css */

但是这样浏览器在加载初始CSS文件后会启动另一个样式表得请求。

为什么CSS @import会让你的网站变慢?

大多数CSS文件都会阻止资源,这意味着浏览器必须先下载它们,然后才能向用户显示页面内容。

当添加多个样式表而不使用@import时(通常在HTML中使用link标签),浏览器可以并行下载它们。

相比之下,使用@import在另一个CSS文件中引用一个CSS文件意味着它们是按顺序下载的,这需要更长的时,因此网站加载速度较慢。

例如,在CSS文件中导入Google Fonts时经常会发生这种情况。

这个请求瀑布图展示了@import创建了一个顺序依赖,从而减慢网站的速度。Google字体CSS要在style.css下载后才能开始加载。

如何避免使用@import

使用标准<link>标签代替@import。如果可以编辑源CSS文件,请删除@import,并使用<link>标签在HTML文档中引用CSS文件。

而不是在CSS文件中执行此操作:

在你的HTML中按如下使用:

<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Press+Start+2P"/>

如果你不能编辑CSS文件,你可以使用预加载资源提示来帮助浏览器更快地发现(和下载)@import资源。

<link rel="stylesheet" href="parentCSS.css"/>
<link rel="preload" href="//fonts.googleapis.com/css?family=Press+Start+2P" as="font"/>

如何检查您的网站是否使用@import

  • 转到 debugbear.com/test
  • 输入您网站的URL
  • 向下滚动至建议
  • 查看建议是否包括删除@import

结论:CSS导入与链接

尽可能使用link标签而不是CSS @import,以便您的网站尽可能快地呈现。

当无法使用link标签时,请考虑使用预加载加载包含@import的样式表。

最后

在现代脚手架搭建的项目中,在开发代码中使用的@import最终编译是会合并在一起的,不会存在这种问题,如果在编译过程中没有做特殊处理的情况则需要关注一下这块的影响。看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~


目录
相关文章
|
3月前
|
前端开发 JavaScript C++
揭秘Web前端CSS引入秘籍:Link vs @import,你的选择决定页面加载速度,你选对了吗?
【8月更文挑战第26天】本文探讨了Web前端开发中CSS的引用方法,主要包括行内样式、内部样式表及外部样式表三种形式。重点对比了外部样式表中的`&lt;link&gt;`和`@import`两种引入方式。`&lt;link&gt;`作为HTML元素,在页面加载初期就开始加载样式资源,支持并行加载,对提高页面加载速度有益。而`@import`作为一种CSS规则,仅能在CSS文件中使用,其引入的样式表会在页面完成加载后才开始加载,可能导致渲染延迟且不支持并行加载。因此,在多数情况下,推荐采用`&lt;link&gt;`方式引入外部样式表,以确保更佳的性能表现和浏览器兼容性。
104 2
|
4月前
|
前端开发 JavaScript API
深入理解css中的link 和 @import
【7月更文挑战第3天】CSS中的link与@import有显著差异。link是HTML标签,用于并行加载CSS,支持动态插入,用途广泛,如加载图标。@import是CSS语法,加载顺序在页面解析后,不支持动态引入,但可在CSS中导入多个样式表。link在性能和兼容性上优于@import。优选link,@import适用于多文件组织样式。
100 1
深入理解css中的link 和 @import
|
3月前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
41 0
|
3月前
|
前端开发 JavaScript
css的import
css的import
44 0
|
4月前
|
前端开发
css特效动画——页面加载中 ...
css特效动画——页面加载中 ...
35 1
|
6月前
|
前端开发 JavaScript UED
【Web 前端】css的引用有哪些,link和@import的区别?
【4月更文挑战第22天】【Web 前端】css的引用有哪些,link和@import的区别?
|
6月前
|
存储 缓存 前端开发
link 与 @import:CSS 样式表的加载策略(下)
link 与 @import:CSS 样式表的加载策略(下)
|
6月前
|
存储 前端开发 JavaScript
link 与 @import:CSS 样式表的加载策略(上)
link 与 @import:CSS 样式表的加载策略(上)
|
6月前
|
前端开发
css引入方式有几种?link和@import有什么区别?
css引入方式有几种?link和@import有什么区别?
100 0