在 Nicolas Gallaghers关于 HTML 语义的文章中,他概述了一种以模块化方式构建 html 和 css 的方法(受 BEM 架构的影响)。他举了一个例子,我不完全理解:
/* Utility */
.u-utilityName {}
/* Component */
.ComponentName {}
/* Component modifier */
.ComponentName--modifierName {}
/* Component descendant */
.ComponentName-descendant {}
/* Component descendant modifier */
.ComponentName-descendant--modifierName {}
/* Component state (scoped to component) */
.ComponentName.is-stateOfComponent {}
- 首先,我不明白的是:实用程序和组件之间有什么区别?
- 这两者之间的符号差异从何而来(实用程序类名以“u-”为前缀)?
- 最后的; 状态和修饰符有什么区别(它们都有单独的符号)?
他在他的文章中没有深入解释这一点,我仍然想了解。所以我希望有人能回答这个问题。