CSS @import 规则

CSS @import 语法

在 CSS 中,@import 规则用于在 “一个 CSS 文件” 中导入 “另一个 CSS 样式表”,从而提高代码的复用性。

语法:

/* 方式 1 */
@import url("文件路径");

/* 方式 2 */
@import "文件路径";

说明:

我们也可以在 @import 规则后加上媒体查询(media query),这样只有当设备符合特定条件时(如宽度、屏幕类型等),才会导入该样式表。其中,多个媒体查询可以用英文逗号(,)隔开。

比如下面代码表示,如果设备的宽度小于或等于 600px,就导入 mobile.css;如果大于 600px,则导入 desktop.css。

@import url("mobile.css") screen and (max-width: 600px);
@import url("desktop.css") screen and (min-width: 601px);

@import 规则既可以在 CSS 文件中使用,也可以在 HTML 的 style 标签内使用。但需要注意的是,@import 必须位于样式表的最顶部(即所有其他样式规则之前),否则将不会生效。

注意: 在 HTML 中,推荐使用 link 标签来导入 CSS 文件,不推荐使用 @import 规则。这是因为使用 link 引入的 CSS 文件会被浏览器优先加载和解析,页面可以更快渲染。而使用 @import 导入的样式表会在页面加载完成后才开始下载,可能会导致页面闪烁,影响性能。

CSS @import 摘要

属于 CSS @规则
使用频率
是否继承
默认值
兼容性 查看
官方文档 查看
MDN 查看

CSS @import 示例

接下来,我们通过几个简单的例子来讲解一下 CSS @import 规则是如何使用的。

1. @import 导入通用样式

在这个例子中,我们尝试使用 @import 规则在一个主样式表 (main.css) 中导入一个通用的样式表 (base.css)。

base.css 文件内容:

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;
}
h1, h2 {
    color: crimson;
    text-align: center;
}

main.css 文件内容:

@import url("base.css");

.container {
    max-width: 300px;
    margin: 0 auto;
    padding: 20px;
    background-color: lightskyblue;
}

index.html 文件内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
    <div class="container">
        <h1>绿叶网</h1>
        <p>为好教程,全力以赴。</p>
    </div>
</body>
</html>

页面效果如下图所示。

@import 示例

分析:

在 main.css 文件的顶部,我们使用 @import url("base.css"); 来将 base.css 的所有样式规则导入进来。

 这样一来,我们只需要在 index.html 中链接 main.css 这一个样式文件,就能同时应用 base.css 和 main.css 中的所有样式了。

2. @import 使用 “媒体查询” 进行有条件的导入

在下面例子中,我们尝试使用 @import 规则根据不同的媒体条件导入不同的样式表,例如为打印机设备单独导入一个样式。

print.css 文件内容:

body {
    font-family: serif;
    font-size: 12pt;
    color: #000;
}
header, nav, footer {
    display: none;
}

screen.css 文件内容:

body {
    background-color: #f0f0f0;
}
header {
    background-color: #333;
    color: #fff;
    padding: 10px;
}

main.css 文件内容:

@import "screen.css" screen;
@import "print.css" print;

index.html 文件内容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="main.css">
</head>
<body>
    <header>
        <h1>标题</h1>
    </header>
    <nav>导航栏</nav>
    <main>
        <p>这是正文内容。</p>
    </main>
    <footer>页脚</footer>
</body>
</html>

分析:

在 main.css 文件中,@import "screen.css" screen; 表示只会在屏幕设备上导入 screen.css。而 @import "print.css" print; 表示只会在打印时导入 print.css,用于隐藏不必要的元素和调整字体。

这样一来,我们就可以根据不同的设备类型,来应用相应的样式文件,从而实现更细粒度的控制。

注意: 虽然配合媒体查询可以让样式在特定条件下才生效,但浏览器通常仍会下载所有导入的文件。因此,为了性能考虑,我们依然建议尽量减少 @import 的使用。

上一篇: @font-face

下一篇: @charset

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号