好吧,将 BEM 简单的解释为 “Block-Element-Modifier“, 其实是个不负责任的做法。鬼知道 Block 是什么啊?所以,看了一些似懂非懂的中文解释之后,自己还是得去找些英文来读一读,顺便总结一下。
本人对 HTML、JavaScript、CSS 其实都只是一知半解,所以,如果有理解不到位的,还望各位看官斧正。但是,本着“要学就要学最先进”的原则,即使是基础不扎实,还是要冲着更有效率的方式前进。
有不想看我罗嗦的看官,可以直接看下面这篇文档:
https://css-tricks.com/bem-101/
什么是 BEM
我们借助一个实例,来对 BEM 做一下介绍。下面是一个遵照 BEM 规则写的 CSS:
/* Block */ .btn { text-decoration: none; background-color: white; color: #888; border-radius: 5px; display: inline-block; margin: 10px; font-size: 18px; text-transform: uppercase; font-weight: 600; padding: 10px 5px; } /* Element */ .btn__price { background-color: white; color: #fff; padding-right: 12px; padding-left: 12px; margin-right: -10px; /* realign button text padding */ font-weight: 600; background-color: #333; opacity: .4; border-radius: 5px 0 0 5px; } /* Element */ .btn__text { padding: 0 10px; border-radius: 0 5px 5px 0; } /* Modifier */ .btn--big { font-size: 28px; padding: 10px; font-weight: 400; } /* Modifier */ .btn--blue { border-color: #0074D9; color: white; background-color: #0074D9; } /* Modifier */ .btn--orange { border-color: #FF4136; color: white; background-color: #FF4136; } /* Modifier */ .btn--green { border-color: #3D9970; color: white; background-color: #3D9970; } body { font-family: "fira-sans-2", sans-serif; background-color: #ccc; }