ReflectionsonBEM在《学会爱上BEM》中,我想表达一下我对BEM语法的新感受。我很高兴地报告说,2年多后,我仍然对自己的选择感到满意。我们在项目中选择代码风格时,会结合使用BEM和ITCSS。前几天我偶然发现了Spatie的指南网站。在CSS部分,我发现了几个让我思考的部分。孙元素做什么首先是“孙子”的概念,它不是“标准BEM”的一部分(如果有的话):.component/*Component*/.component__element/*Child*/.component__element__element/*Grandchild*/如果子元素在下面的HTML中有子元素怎么办?按道理你会用这个孙子的方法。我的经验告诉我,这会导致不必要的长类名(BEM已经是错误的,没有必要试图在CSS中反映HTML的结构。我花了很长时间才解决这个问题。将底层HTML反映在CSS结构似乎是一个干净的想法。一旦你开始应用它,虽然你会发现这会导致代码太长;当你想改变你的HTML结构时,你需要重命名很多。在我看来更好的是只是给你的孙子们一个双下划线加上一个不同的名字。如果你发现你的结构太深了,你可能需要定义一个新的组件。缩短修饰符长度在BEM中,修饰符类是用两个符号链接的。例如,我们有一个带有基类c-button的按钮。定义一个大按钮,它是常规按钮的变体,用c-button--large装饰。在html中,它可能看起来像这样
