不使用构建工具,如何对css进行模块化?

22,541次阅读
没有评论

共计 790 个字符,预计需要花费 2 分钟才能阅读完成。

构建工具

使用构建工具进行开发,最终通过构建工具打包编译出最终的前端代码是现在的大趋势,但是构建工具生产出来的大都是前后端分离的代码。如果对 seo 有要求,通过构建工具就不符合需求了(不考虑 SSR,毕竟它局限于 Node);

在 PHP 的世界里还是有很多不分离的场景的(例如 wordpress)。

对于 html 可以通过 PHP 自身的特性去拆分,对于 JS 已经有了很多成熟的模块化方案。

那么对于 css 呢?

CSS 模块化

这里的模块化只考虑拆分,不考虑实现局部作用范围。

1. 传统写法

如果不模块化的话,我们往往是这么写:

....
css 变量...;pc 端 css...;手机端 css..;....

从头到尾写完,最终网页上只需要引入一个文件;随之而来的问题就是:css 越写越多,维护起来越来越麻烦,找个 css 都得找好一阵;

然后可能就考虑拆分成多个文件,分开引入(不考虑 css 自带的动态引入);最后发现维护确实简单了,但是引入文件数量多了,总会觉得不简洁。

那么有没有维护起来方便,最终只需要引入一个文件的方案呢?有!

2. scss 预处理

scss 的相关说明看这里:https://nicen.cn/1167.html

使用 scss 之后就变成了这样:

@import "assets/extra/normal.scss";
@import "assets/extra/w-1024-1580.scss";
@import "assets/extra/w-1024.scss";
@import "assets/extra/w-768-1024.scss";
@import "assets/extra/w-480-767.scss";

@import

类似 PHP 的 include,导入一个外部文件

经过 scss 编译之后得到一个完整的 css 文件,而我们只需要维护多个拆分后的 scss 文件;同时还能使用 scss 的一些特性,让 css 写起来更加流程和方便;

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2022-08-20发表,共计790字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)