学习CSS你必须踩得那些坑(三)

BEM

BEM 其实很简单,有点面向对象编程的意思,不过比OOP还简单直接。只要记住,BEM是由Block(块),Element(元素),Modifier(修饰符)组成,__连接Element,--连接Modifier;你把代码按照模块来组织。举个例子:

.person{}

.person__avatar{}

.person__avatar--round{}

我们有一个personBlock,每个人都有头像、名字、描述之类的,所以我们用到.person__element;头像我们可能需要方的、圆的……都需要对这些进行单独设置,所以这时候对每个元素就用到Modifier。代码非常扁平是不是,如果按照我们以前的写法,可能就是这样:

.person{}

.person .avatar{}

.round{}

好像除了长一点,没什么区别呀!
那现在加一个动物,加个狗吧:

.dog{}

.dog .avatar{}

.round{}

现在有个人养了一条狗,我们的HTML是这样:

<div class  = "person">

    <div class = "avatar"></div> <!-- 人头 -->

        …

 

    <!-- dog -->

    <div class = "dog">

        <div class = "avatar round"> <!-- 狗脑 -->

    </div>

</div>

有没有晕乎乎的感觉,这两个avatar是一样的还是不一样的,到底应用了哪条样式,还有没有公共的样式+_+?(模块这个东西看起来很悬,不同人理解可能也有偏差,但是你只要用着舒服就行了,写多了,你就知道到底怎么按模块化来写代码了)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值