首页 存档 技术 查看内容

什么鬼,又不知道怎么命名class了

2018-3-30 13:00 |来自: 互联网 270 0

摘要: (点击上方公众号,可快速关注) 来源:结一(@结一w3cplus) 链接:http://www.w3cplus.com/css/css-class-name.html 相信写css的人都会遇到下面的问题: 糟糕,怎么命名这个class,好像不太贴切,要是冲突了怎 ...

(点击上方公众号,可快速关注)


来源:结一(@结一w3cplus)

链接:http://www.w3cplus.com/css/css-class-name.html


相信写css的人都会遇到下面的问题:


  • 糟糕,怎么命名这个class,好像不太贴切,要是冲突了怎么办,要不要设计成通用一点…

  • 而改别人css代码的时候则会一直有个疑问:这个class到底是只在这个地方用了,还是其他地方都用了?


于是就有了下面的做法:


  • 最后终于**出了个class,简洁也好,中英混搭也罢,看着一头雾水也没关系,反正最后页面显示出来的。

  • 这个class应该是只有这个地方用到,我可以放心写。上线之后。如果没问题,则暗自自我欣赏,看吧问题就这么简单,分分钟搞定呀;如果冲突了,则无限感慨,哎,改的时候我就隐隐不安啊,妈蛋,深坑,这是谁写的,谁写的!!!

  • 不好,这个class说不定其他地方也用到了,我得加个**范围,加个父元素?要不重新再命名个class吧,比较保险。最后如果没问题则表示还好比较机智,怎么说哥也是混过的,还是有几斤几两的;如果有问题则表示防不慎防啊,这也太太太坑了吧。


由此可见,class的命名真不是一件简单的事,尤其还要兼顾可辨别性与可读性。


class命名到底有多难


第一,class跟id不一样,class本来就是设计用来可以重复利用的,而id才是设计唯一的(如果遵循BEM,class几乎也都是唯一的了)。


第二,样式是可以覆盖的,而且先按照权重,再按照定义的先后顺序。也许你花了十分钟设计定义的一个class样式,人家分分钟就给你干掉了,这得多恼火;也许这个页面好好的,跑到另一个页面就跟原先的样式有了冲突。


所以class命名的难就难在既要重复利用,又要避免样式的冲突。如果要重复利用,那么当然是越简单越好,越抽象可用的地方越大,太具体了就完蛋了。而如果要避免样式冲突。BEM的方式最简单,class都唯一了,那还冲突个毛线;其次就是通过父元素限定作用域,可以搞几个层级,而不是单独一个class定义样式;还有就是追加class,来实现差异化;最后不同的页面不同的文件,你用你的我用我的。


// BEM

.imgslide__item__img{}


// 父元素限定

.imgslide .item .img{}


// 追加class

.img{}

.img--special{}


// 不同页面不同文件

// a.html

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部