less和sass

文章探讨了less和sass如何通过嵌套和变量增强CSS,以及在大型项目中,BEM、CSSmodules、AtomicCSS和CSSinJS等方法如何解决命名冲突问题。BEM提供了一种命名规范,但仍有局限性。CSSmodules利用webpack的hash值避免了冲突,但使用过程繁琐。
摘要由CSDN通过智能技术生成

less和sass
相比于css解决了什么问题?
答案:less和sass可以嵌套,可以使用变量;而css不可以

BEM/CSS modules/Atomic CSS/CSS in JS,这些方案应用于工程化中,解决了的问题是:
多人协同/大规模场景下,css 命名冲突

BEM - 通过一些命名规范去避免命名冲突 (block__element–modifier) ,并不常用,缺点如下:

  • 不能从根本上解决这个命题
  • 命名 长 + 比较难想

所以现在用CSS Modules来解决CSS命名冲突的问题:

import styles from 'xxx.less'
styles.a => hash

以上代码中,其实styles.a的a后面有一长串的hash值,虽然不同文件中可能a相同,但是hash值不同,所以不会命名冲突。
在webpack中配置,如下图所示:
在这里插入图片描述
css modules,利用hash值保证不同文件中的css命名不冲突
缺点:用起来繁琐
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值