好程序员分享如何查看CSS中BEM的命名方式?BEM的意识是块(block)、元素(element)、修饰符(modifier),是yandex团队提出的一种CSSClass命名方式。 任何事物的存在都有它的道理。如果不值钱,肯定会被淘汰,后人未必会理解,甚至不会出现在后人的世界里。 关于BEM命名最大的争议就是它的命名风格。它鼓励逐级编写非常具体的内容,但是会很长。这样的通用命名会影响编写效率。如果名字太长,代码量会增加,文件体积会变大(gzip下这不是问题),影响传输速度,用户体验会很低。但作为专业人士,我们不能简单地以个人喜好和习惯为借口拒绝或否认其使用。 风格对用户来说不是很重要,关键是看效果。俗话说“不看疗程,只看疗效”。 从可扩展性的角度来看,嵌套太多可读性差,超过3层就难以阅读;嵌套越多,选择器的层次就会越多,不知不觉中性能会变差;这么长的名字,很难写出冲突。 从编程原理上来说,这种命名方式并没有暴露抽象类。如果样式发生变化,需要继承另一个抽象类,则无需更改HTML,只需要更改css即可。 在团队发展中,作风无非是一种形式,可以约束人们达到一定程度的团结。内部沟通将大大降低沟通成本。 BEM的命名方式有其不足之处,但至少可以让我们在命名的时候达到一定的统一性,可以借鉴其优秀的方面,为己所用。在实际项目开发中熟练灵活地使用它并不是一件坏事。
