是连接类的好习惯吗?

时间:2013-07-19 15:14:34

标签: css css-selectors design-patterns code-maintainability

为什么我常常在常用的库中看到.closed-dialogue.open-dialogue,而不是.closed.dialogue.open.dialogue

每个元素一个类的问题

要使用第一种方法格式化所有对话,您需要在选择器中使用两个类。

每次添加另一个差异,f.e。一些颜色,您将乘以选择器中的类数:.warning-dialogue-closed, .error-dialogue-closed, .warning-dialogue-open, .error-dialogue-open

现在怎么可能是好的做法?这几乎难以维持!

你甚至无法在模块中分离你的代码,因为对话的基本选择器需要知道所有存在的对话!

每个元素的几个类解决了这个

通过连接多个类,代码将更短,更易于维护且更易于阅读:

.dialogue格式化所有对话,无论你有多少不同。

.error.dialogue.warning.dialogue会为这两种风格添加更改。 .open.dialogue.closed.dialogue会处理其他差异。

您甚至可以使用另一个隔离模块来定义 big small 对话框,基本模块甚至不需要了解它。

那么为什么我从未见过这个?

1 个答案:

答案 0 :(得分:1)

您的方法存在的问题是它更可能与其他类冲突。

如果网页本身有其他一些不相关的open课程,class="open dialog"会选择该课程的规则并搞砸了。

这就是像jQuery UI这样的库倾向于为所有类添加前缀的唯一值。