Home  >  Article  >  Web Front-end  >  css modules的几种技术方案_html/css_WEB-ITnose

css modules的几种技术方案_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-21 08:53:341445browse

css modules是一种非常的好css模块化解决方案,可以确保多人多项目不会样式冲突,下面是我找到的几种结构配套方案,可以根据需要做选择。

react

react就不多说了,搜一下基本都是react的demo,官方有几个demo。

  • webpack-demo
  • browserify-demo

Underscore templates

css-modules-html-demo使用了 Lo-Dash/Underscore templates,亲测可以生成html文件。

/*style/block1.css*/.element {  color: red;}

引入css,就可以用 block1.element来调用class了

<% var block1 = require("./styles/block1") %><div class="${block1.element}">Block 1 element</div>

生成的结构和样式

<div class="block1-element">Block 1 element</div>
.block1-element {  color: red;}:export {  element: block1-element;}

:export为对应的匹配规则,可以在 gulpfile.js修改命名规则。

var core = new Core([  Core.scope({    generateScopedName: genericNames("[name]-[local]"),  })]);

这个方案是不错的方案,很多时候我们的基本骨架还是html。

jade

在官方的issue,有人问道能不能用jade,slim,haml之类的模板引擎。作者给出了如下的代码

doctype html- styles = require("./styles.css");html(lang="en")  body    h1.global(class=styles.local) CSS Modules & Jade

但是实际上还要 style-loader和 css-loader?modules

doctype html- styles = require("!style!css?modules!./styles.css");html(lang="en")  body    h1.global(class=styles.title) CSS Modules & Jade

我写了一个demo,可以下载查看。

angular

这里有一个demo,可以下载查看具体用法。

vue

vue-loader默认用了 scoped css,但是没有css modules强大,我重新写了一个css-module-vue-demo

postHTML

posthtml-css-modules

ejs

postcss-modules-example

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn