大前端从入门到跑路码农的世界程序员

BEM和UI切图命名

2017-07-29  本文已影响650人  ketchupyan

设计师学编程遇到BEM

许多人第一次看到BEM都会觉得这东西好繁杂好长好难用啊,与之不同的是我第一次接触BEM的时候觉得很熟悉,因为所学专业是设计专业,所以自然而然对于UI是有所接触了解的,所以接触BEM的时候觉得和UI切图命名规范有异曲同工之妙。
所以便萌发了一个是否可以用UI切图命名规范来理解BEM的想法。

BEM是什么

首先我们的理解BEM是什么,BEM是由Yandex团队提出的一种CSS Class 命名方法,下文引用来自:https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/

BEM – meaningblock,element,modifier– is a front-end naming methodology thought up by the guys atYandex. It is a smart way of naming your CSS classes to give them more transparency and meaning to other developers. They are far more strict and informative, which makes the BEM naming convention ideal for teams of developers on larger projects that might last a while.

大意就是BEM是Yandex团队提出的这种命名方法可以让你的CSS类名对于其他开发者更加友好,也更加有利于维护的意思。
说通俗一点就是BEM就是一个类名规则,高级一点呢可以说BEM是一种前端编程思想

BEM的命名模式如下

 .block{} 
 .block__element{} 
 .block--modifier{}

.block{} 代表了更高级别的抽象或组件
.block__element{} blcok后代, 用于形成一个完成的.block整体,用(__)连接
.block--modifier{} block不同状态或不同版本 用(--)连接

通俗一点来理解的就是

UI切图命名又是怎么样的

UI切图的命名并不像BEM有团队提出。也就是说命名并不是统一的规范,但是都差不多。
一般都是类别+功能+状态.png这个样子的,比如:icon_home_default代表的就是图标主页默认的意思。当然很多公司的大项目都是会分成很多模块来做,所以命名格式又分为两种,一种是通用类型的切图,还有一种就是各个模块特有的切图。

通用切片命名格式:
组件类别功能状态@2x.png
举例:tabbar_icon_home_default@2x.png
(对应中文:标签栏
图标主页默认@2x.png)

模块特有切图命名规则:
模块类别功能状态@2x.png
举例:mail_icon_search_pressed@2x.png
(对应的中文为:邮件
图标搜索 默认@2x.png)
(@2x.png是在retina屏幕使用需要添加的)

对比

规范的作用

当然并不是所有事情都需要遵守规范,以一些初创型公司来说,产品经理并不需要些PRD文档,因为耗费时间,而前端也不一定需要使用BEM规范,毕竟还有其他的规范。

上一篇 下一篇

猜你喜欢

热点阅读