Skip to content

CSS命名规范 #3

@FannieGirl

Description

@FannieGirl

刚入门的小菜鸟,总是会去关注一些大神在用什么工具啊!最新又出现了什么。因为了解的少,总是羡慕这别人在用什么(可能就我这个幼稚鬼这么想)。
CSS规范命名我一直是用‘驼峰命名法’,这也是要根据公司的团队的来定的(个人习惯也占一半)。刚入门的时候老师怎么教的就怎么用,自己也不太在意。正式上班了,看着别人的特别的舒服(没有对比就没伤害)就会意识到自己写的不太好。可能是我运气比较好,遇到了一个比较注意命名规范的团队。所以那时候就注意了自己的编程风格。切入正题:

如何更好的使用BEM?

BEM是由Yandex团队提出的一种CSS Class 命名方法,旨在更好的创建CSS/Sass模块。
BEM代表块(Block),元素(Element),修饰符(Modifier)。
首先你拿到设计稿大概的看一下布局,心里就要规划一下这个页面怎么布局,分成多少块。块就是区域(不太正确的说法)块里面就有元素。正确的CSS命名就是要保证class类名的唯一性(这是我们想要达到的理想效果吧)。类名唯一了就不用担心样式覆盖的问题了,特别是在后期维护的时候,新增加的组件样式要确保不会影响之前的。这也就是为什么我们要规范类名命名。
使用BEM,块的命名唯一(就是跟其他的块不能相同,但是复用相同的块是可以的)。块里面的元素可以根据块名作为前缀下划线区分加上元素名称。(nav_item)
例子:
qq 20170317115109

前面我也说到,我个人比较喜欢用‘驼峰命名法’。 如果要舍弃掉好像有点难呀!两者能不能结合呢?

qq 20170317141332

嗯啊!这样是不是很棒。不过这个BEM有个诟病命名很长,看起来html结构很冗长。尽量在命名的时候用常用易懂的单词。尽量都使用英文,不要一半拼音一半英文(这样真的很low)而且难以理解,不好维护。

后言:
参考链接:http://www.w3cplus.com/preprocessor/getting-sass-y-with-bem.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions