Jquery中文网 www.jquerycn.cn
Jquery中文网 >  CSS教程  >  经典实例  >  正文 深入分析CSS 模块化基础知识

深入分析CSS 模块化基础知识

发布时间:2017-12-13   编辑:www.jquerycn.cn
jquery中文网为您提供深入分析CSS 模块化基础知识等资源,欢迎您收藏本站,我们将为您提供最新的深入分析CSS 模块化基础知识资源
css 模块化对于小编来讲还是第一次听说过了,不过看了文章之后发现模块化还是非常的不错了,下面一起来看看关于css模块化的一些基础知识吧。


CSS 规则的作用域是全局的。放到 JavaScript 环境里说,我们写的每一条 CSS 规则,都相当于定义一个全局变量。全局变量多了,命名冲突、副作用、代码不可预测等问题就开始浮现。我们无妨把 CSS 想象成一头野马,我们所有的 CSS 命名规范上的尝试,无论是 SUITCSS 还是 BEM、SMACSS 或是其它,都是打算给 CSS 套上缰绳,但我们只是往正确的方向走了一小步。命名规范只是一种约定,如果开发者有意或无意地忽视,哪怕只是代码中的一小部分,也会给以后埋下问题。

所以我们可以看到,在 JavaScript 模块化非常成熟、各类工具齐全的今天,前端界开始往 CSS 模块化方向努力。

我最早了解到的这方面努力是 ember-component-css,比如 app/my-component/styles.css 文件内容如下:

& {
  padding: 2px;
}
.urgent {
  color: red;
}
构建后的 CSS 如下:

.my-component-a34fba {
  padding: 2px;
}
.my-component-a34fba .urgent {
  color: red;
}

构建后的 CSS 作用域不再是全局,而是限定在这个组件中,我们把 CSS 关进模块化的笼子。我们不用担心它的作用会渗透到其他代码,我们现在对我们的代码作用范围非常有信心 – 它现在更像是狙击枪,而不是手榴弹。

接下来,我在用 JSPM 时也看到模块化 CSS 的努力。

然后是 webpack 的 CSS Module mode,开发这块功能的这位甚至宣布了全局 CSS 的终结。

从上面的简单介绍中可以看到,CSS 的模块化依赖于特定工具,比如 ember-cli、webpack、jspm,如果我们不用这类工具的话,就基本无法对 CSS 做模块化,这样移植性似乎差了点,而且因为没有标准规范,所以它们的实施也不尽相同。可是这年头,不用这类工具辅助的代码,恐怕代码在可维护性、可扩展方面都会很糟糕吧。

您可能感兴趣的文章:
深入分析CSS 模块化基础知识
CSS弹出DIV 在窗口居中位的例子
photoshop基础图层与蒙版使用技巧心得
如何做好学习python的开端?
php程序员需要会什么技术?
python数据分析与应用是什么
学习Python却没看过这几本书,你就OUT了
《Python2爬虫入门教程指南》(系列教程)
没学过编程可以自学python吗
Python数据分析要学什么数学

[关闭]