0
点赞
收藏
分享

微信扫一扫

避免使用 CSS @import

黄昏孤酒 2022-07-27 阅读 75

​@import​​ 函数允许我们包含来自外部文件的样式。当我们的项目有很多样式时,它非常有用。我们不需要创建一个文件来定义所有样式,而是可以将它们拆分为多个文件,并将它们组合到主文件中。

/* 主文件 */
@import 'common.css';
@import 'components.css';
@import 'pages.css';
...

使用 ​​@import​​ 可以使我们的样式更有条理,更易于维护。但是,在继续渲染页面之前,浏览器必须逐个下载并解析每个 CSS 文件。CSS 文件按顺序下载,而不是并行下载。

它还会根据 CSS 文件的数量来降低网站的速度。

在风格仍然井然有序的情况下,有几种方法可以解决这些问题。

使用 CSS 预处理器

我们可以使用 CSS 预处理器,如 ​​Less​​​、​​SASS​​​。它们不仅提供了将 ​​@import​​ 作为普通 CSS 使用的功能,而且还可以将样式合并到单个最终 CSS 文件中。

使用多个 link 标签

每个 CSS 都可以通过单独的 ​​link​​ 标签下载,如下所示:

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

注意:在旧版本的 Internet Explorer 中,​​@import​​ 函数的行为与在页面底部插入目标 CSS 的行为相同

这里还涉及一道常见的面试题。

页面导入样式时,使用 link 和 @import 有什么区别?

  • ​link​​​ 属于 XHTML 标签,除了加载 CSS 外,还能用于定义 RSS,定义 rel 连接属性等作用;而 ​​@import​​ 是 CSS 提供的,只能用于加载 CSS;
  • 页面被加载的时,​​link​​ 会同时被加载,而 ​​@import​​ 引用的 CSS 会等到页面被加载完再加载;
  • ​@import​​​ 是 CSS2.1 提出的,只在 IE5 以上才能被识别,而 ​​link​​ 是 XHTML 标签,无兼容问题;
  • ​link​​​ 方式的样式的权重高于 ​​@import​​ 的权重。
举报

相关推荐

0 条评论