CSS模块化】的更多相关文章

以前看过模块化的相关资料以及解释,对模块化有了一个表皮的了解,自己也做了一些相关的实践,由于接触到的项目交小,所以也没能更好的去体现和理解模块化,但总体还是有那么一些感悟,但是如果要说怎么才能算是好的模块化,自己内心还是一个疑问. 前几天接到一个电话面试,谈到了css模块化的问题,觉得自己的回答太模棱两可,自己回答过后对自己的答案也不满意,没有一个周全的思考和考虑. 下面总结一下自己对css模块化的理解,尽可能的表达完善自己的想法以及对所查找到的资料的一个总结. ————————————————…
引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的不仅是衣服,更是一种心情.在web前端的世界里,css里也充满了生活的艺术,都说,艺术源于生活,却高于生活,是对生活的一种升华,那么在css里,是个性化的定制好,还是模块化的量产好呢?这就要看各个项目了,这是一种权衡,一切离不开一个度,这世上没有最好的,只有最适合自己的,在web前端的世界里亦是如此. 假如你现在只是做自己的一个小博客,那么就需要你有自…
第一次听到“CSS模块化”这个词是在WebReBuild的第四届“重构人生”年会上,当时我还想,“哈,CSS也有模块化,我没听错吧?”事实上,我没听错,你也没看错,早就有CSS模块化这个概念了.之所以我把这个拿出来讨论,是因为一个算是比较大的项目出现了一些重构上的危机,因此引发了我们对页面重构中的CSS进行模块化的思考. 首先,什么是CSS模块化?在谈CSS模块化之前我们先看一下百度百科对模块化的解释: “模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程.每个模块完成一个特定的…
为什么要CSS模块化? 你是否为class命名而感到苦恼? 你是否有怕跟别人使用同样class名而感到担忧? 你是否因层级结构不清晰而感到烦躁? 你是否因代码难以复用而感到不爽? 你是否因为common.css的庞大而感到恐惧? 如果有,恭喜你来对了地方!本文会为您一一解决这些难题! 那么如何解决CSS命名问题? 我们看一下CSS是怎么规范的:使用有意义的或通用的ID和class命名.ID和class的命名应反映该元素的功能或使用通用名称,而不要用抽象的晦涩的命名.反映元素的使用目的是首选:使用…
什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方式.它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立.互相作用的组件,来处理复杂.大型的软件.看完模块化,是不是有种拼图的即视感,可以把大图分成各个小图,然后把小图拼成大图,分与合的艺术感.那么css模块化思想,也就是在css编写环境中,用上模块化的思想,把一个大的项目,分解成独立的…
(1)内联样式 注:样式要采用驼峰命令发,如果非要使用原生css样式写法,需加引号 缺点:一些动画,伪类不能使用 class App extends Component { constructor(props) { super(props); this.state = {date: new Date()}; } render() { const styleCss = { header : { color: 'red', backgroundColor: '#ccc', "padding-top&…
Vue风格指南中介绍了单文件组件中的Style是必须要有作用域的,否则组件之间可能相互影响,造成难以调试. 在Vue Loader Scope CSS和Vue Loader CSS Modules两节中介绍了Vue实现CSS模块化的两种方式. 下面对scoped和CSS Modules两种方式分别进行介绍,然而这两种方式均非最佳实践. 一.scoped 使用scoped会为组件中HTML树的每个元素都添加data-xxxx属性,其中xxxx是哈希值.转换之后的CSS变成 mySelector[d…
什么是css模块化思想?(what) 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种 处理复杂系统分解成为更好的可管理模块的方式.它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立.互相作用的组件,来处理复杂.大型的 软件.看完模块化,是不是有种拼图的即视感,可以把大图分成各个小图,然后把小图拼成大图,分与合的艺术感.那么css模块化思想,也就是在css编写环 境中,用上模块化的思想,把一个…
CSS模块化思想(一)--------命名是个技术活 引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的不仅是衣服,更是一种心情.在web前端的世界里,css里也充满了生活的艺术,都说,艺术源于生活,却高于生活,是对生活的一种升华,那么在css里,是个性化的定制好,还是模块化的量产好呢?这就要看各个项目了,这是一种权衡,一切离不开一个度,这世上没有最好的,只有最适合自己的,在web前端的世界里亦是如此…
一.JS模块化 命名空间,COMMONJS,AMD/CMD/UMD,ES6 module 1.什么是命名空间 库名.类别名.方法名 弊端:在命名空间重复生命,要记住完整的路径名(而且很长) var NameSpace = {} NameSpace.type = NameSpace.type || {} //已经定义了就是它自己,没有定义就赋值一个空对象给它,避免命名空间覆盖的问题 NameSpace.type.method = function () {} 2.什么COMMONJS (服务器端使…
什么是css模块化思想?(what) 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方式.它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立.互相作用的组件,来处理复杂.大型的软件.看完模块化,是不是有种拼图的即视感,可以把大图分成各个小图,然后把小图拼成大图,分与合的艺术感.那么css模块化思想,也就是在css编写环境中,用上模块化的思想,把一个大的项…
Bulma CSS框架教程 Bulma CSS – 简介 Bulma CSS – 开始 Bulma CSS – CSS类 Bulma CSS – 模块化 Bulma CSS – 响应式 Bulma框架是模块化的,可以按需导入. Bulma包含39个.sass文件,都可以单独导入. 例如,假设项目只需要Bulma columns,相关文件位于bulma/sass/grid文件夹中. 只需导入依赖项utilities以及columns: @import "bulma/sass/utilities/_…
为什么要模块化? 分治和复用 封装,不污染全局,不被全局污染. 继承 BEM(block:块,Element:元素,Modifier:修饰符)策略 .block__Element--Modifier .块__元素--修饰 封装靠人为约定. 继承靠层叠特性. 基础组件样式 分治性强,复用性强. .Button { /* Button通用样式 */ } .Button--disabled { } .Button--error { } .Button--in-progress { } <button…
用的css预处理器用sass,其他大同小异. 用create-react-app创建项目,执行npm run eject弹出配置文件(此操作不可逆): 配置sass,用的最新的CRA,webpack4: webpack.config.dev.js (webpack.config.prod.js需相同配置一份): module下的rules 中 oneOf 修改&增加  { // Exclude `js` files to keep "css" loader working as…
react中使用普通的css样式表会造成作用域的冲突,css定义的样式的作用域是全局,在Vue 中我们还可以使用scope来定义作用域,但是在react中并没有指令一说,所以只能另辟蹊径了.下面我将简单记录并介绍一下在webpage配置实现css 的模块化. webpack的配置: 截取一小段  { test: /\.css/,use:['style-loader','css-loader?modules$localIdentName=[path][name]-[local]-[hash]']…
其实具体出现了什么问题,我也记得不清楚了,今天突然回想起来必须记录一下,一个思想就是用exclude将node_module目录下的文件排除,网上有很多相关例子,但不知是不是因为时间久远,都不生效,无奈,又只好啃回官方文档,我的解决方式如下 webpack正常打包的话,所有的css都会被打包在一起,造成css的全局污染,我们可以采用模块化的方式,其实就是借用hash改变类或id名 webpack.config.js module: { rules: [ { test: /\.(js|jsx)$/…
less的安装与基本使用 less的语法及特性 一.本地使用less的方法 Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言.是一种动态样式语言,属于css预处理语言的一种. 下载后找到less.js:less.js-2.5.3\dist\less.js 也可以直接使用CDN缓存: <script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.3/less.min.js"…
开始: 利用官方脚手架,搭建react工程.参考:https://react.docschina.org/docs/create-a-new-react-app.html. 过程: 1.暴露webpack配置 执行eject脚本,操作不可逆,在执行前要将之前内容提交到git,以便恢复. 执行 npm run eject 执行后产生webpack配置文件. 2.调整,使css文件可以模块化引入. 主要是利用css-loader模块.配置,获取其它插件请参考:https://webpack.docs…
第一次用bootstrap到实战项目,是一个企业门户站,可以说是强行拿bootstrap上来练手,感觉并不适合. 我是用的less编译bootstrap文件,直接改less变量.然后把不可重用的部分,比如页面头部,单独用一个app.css文件来覆盖. 发现bootstrap的字体实在是不行,本身就是给外国佬设计的,前几天看到一个neat.css据说是把normalize根据国情改进过的,拿来用了感觉还不错. 目前的想法是把网站会复用的部分调用bootstrap来实现,或者样式有差别的直接改les…
1.scoped https://vue-loader.vuejs.org/zh/guide/scoped-css.html 2.module https://vue-loader.vuejs.org/zh/guide/css-modules.html#用法 3.原理 module:通过给样式名加hash字符串后缀的方式. scoped:vue通过在DOM结构以及css样式上加唯一不重复的标记,以保证唯一. 4.区别 (1)css优先级 scoped处理会造成每个样式的权重加重,因为除了使用类名…
1. Base2. Layout3. Module4. State5. Theme 1) Base rules Base rules are the defaults. eg: ;; } input[type=text] { border: 1px solid #999; } a { color: #039; } a:hover { color: #03C; } 2) Layout rules divide the page into sections. Layouts hold one orm…
<div className={[`${styles.tableOpers}`,`clearfix`].join(' ')}></div>…
在 styled-components 升级到 4 版本后设置全局属性的 createGlobalStyle 这个 api 被废除,替代的 api 是 createGlobalStyle 与过去组织代码的方式有差异代码如下. style.js 文件中的代码: import { createGlobalStyle } from 'styled-components' export const GlobalStyle = createGlobalStyle` html, body, div, spa…
注释: options:{ importLoaders: 2 } 解决样式文件里使用@import 'xxx.xxx' 的问题 module: { rules: [{ test: /\.scss$/, use: [ 'style-loader', { loader: 'css-loader', options: { importLoaders: 2, modules: true } }, 'sass-loader', 'postcss-loader' ] }] }…
模块化是现今我们随处都可以听到的一个名词,什么是模块化?为什么我们需要模块化?这是本系列文章我们要弄明白的一个问题.我们也借这部分内容,顺带回顾一下前端的发展历程. 说实话,模块化这个主题有点大,我一时也不知道从哪里讲起比较合适,通常来说,前端的工作内容主要涉及三个方面:html.css.js(javascript),其他的像as(actionscript,flash的脚本语言).jsp.smarty等等模版类的语法标记我们在此就先略去了,因为不是特别重要.那我们所说的模块化也可以分别当成这三条…
一.简介 Web前端模块化:HTML模块化.CSS模块化以及JS模块化三个部分: 二.CSS模块化背景 对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目,那就需要对css进行管理和规范了,否则会发生不可挽回的后果(吓唬谁呢??). .dossierList-Head{ width: %; height: %; margin-left: %; margin-right: %; display: flex; justify-content: space…
通过create-react-app脚手架生成一个项目 然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来, 方便自己手工增减,暴露出来的配置文件在app/config下面. 1.antd样式按需加载 用到babel-plugin-import bebel插件 直接在package.json里面添加配置就可以按需加载了: "babel": { "presets": [ "react-app" ]…
原文链接:戳这里 自从开始做前端开发以来,我发现在开发页面的时候,总是有一个问题十分影响自己的开发效率,这个问题就是css的命名,主要是指css类选择器的命名.这个问题主要体现在:第一,有的内容你压根想不出用什么名字来给它命名,因为一般命名总是考虑语义化,好让其他人看到这个css类的名字就知道它是作用于哪一个内容的,但是由于网页内容的复杂性和多样性,你很难保证每个部分都能起一个合适的名字,即使你最终迫不得已想出了一个名字,也会有这个名字是否是最合适的这种纠结存在,而且最要命的是,这个命名的过程是…
自从开始做前端开发以来,我发现在开发页面的时候,总是有一个问题十分影响自己的开发效率,这个问题就是css的命名,主要是指css类选择器的命名.这个问题主要体现在:第一,有的内容你压根想不出用什么名字来给它命名,因为一般命名总是考虑语义化,好让其他人看到这个css类的名字就知道它是作用于哪一个内容的,但是由于网页内容的复杂性和多样性,你很难保证每个部分都能起一个合适的名字,即使你最终迫不得已想出了一个名字,也会有这个名字是否是最合适的这种纠结存在,而且最要命的是,这个命名的过程是一项非常辛苦的脑力…