使用@import可实现css模块化,通过引入base、layout等样式文件拆分功能,并支持媒体查询条件加载,但存在性能与阻塞问题,建议简单项目使用,大型项目优选构建工具或CSS预处理器方案。

使用 @import 实现 CSS 模块化样式是一种组织和管理样式表的有效方式,尤其适合项目结构清晰、样式拆分明确的场景。虽然现代前端开发更多使用构建工具(如 webpack、vite)配合 CSS Modules 或预处理器(sass、less),但原生 CSS 的 @import 依然可以在简单项目中发挥作用。
1. 使用 @import 引入外部样式文件
@import 允许你在主样式文件中导入其他 CSS 文件,实现样式拆分。所有 @import 规则必须放在文件顶部,在任何其他样式规则之前。
@import url(‘base.css‘);
@import url(‘layout.css’);
@import url(‘components.css’);
@import url(‘theme.css’);
/ 主样式表中的其他规则 /
body {
font-family: Arial, sans-serif;
}
上面代码将多个模块化的样式文件合并到主 CSS 中,每个文件负责不同功能:
- base.css:重置样式、通用类
- layout.css:页面布局结构
- components.css:按钮、卡片等组件样式
- theme.css:配色、主题变量相关样式
2. 配合媒体查询实现条件加载
@import 支持按设备类型或屏幕尺寸导入样式,有助于实现响应式模块化。
立即学习“前端免费学习笔记(深入)”;
@import url(‘print.css’) print;
@import url(‘mobile.css’) screen and (max-width: 768px);
@import url(‘desktop.css’) screen and (min-width: 769px);
这样可以根据设备特性只加载必要的样式模块,优化性能。
3. 注意事项与局限性
@import 虽然简单,但有几点需要注意:
- 必须写在 CSS 文件开头,否则无效
- 每次
@import都会发起额外 http 请求,可能影响页面加载速度 - 阻塞渲染:浏览器需先下载并解析被导入的文件,可能导致白屏延迟
- 不支持动态加载或按需引入,灵活性不如现代模块化方案
4. 替代方案建议
对于大型项目,推荐使用更高效的模块化方式:
基本上就这些。如果你的项目结构简单,@import 可以快速实现样式拆分;但在生产环境中,结合工具链的模块化方案更优。关键是根据实际需求选择合适的方式。不复杂但容易忽略细节。


