【发布时间】:2012-01-26 21:40:25
【问题描述】:
我正在开发一个 HTML 组件库。底层技术不相关;每个组件的代码只生成最终发送到浏览器的 HTML。
我遇到的问题是很多生成的 HTML 需要由应用程序设置样式。而且我不提前确切知道这种样式可能是什么。此外,生成的 HTML 往往有多个 div 和 span,每个的样式可能不同。想一想日历组件之类的东西以及可能设置样式的所有不同方式。
起初我以为我只是为每个重要的元素分配一个类。我在所有类名前加上“foo”(我的库的名称),因此日历组件的 div 具有类 foo-calendar。但在组件内部,我开始怀疑这种方法,因为我不得不为构成每个 div 的所有各种 div 编造奇怪的名称。如果组件中只有一个特定类型的标签怎么办?即使它没有添加任何额外的含义,我是否仍然给它一个类?
我开始认为我只会添加足够的类来唯一标识每个标签。因此,如果组件中只有一个输入字段,我根本不会给它一个类,因为 CSS 选择器“.foo-calendar input”会找到它。但这种方法似乎有点过于主观了。
我的另一个问题是,我是在所有类名前面加上我的库名,还是只在“顶级”类前面加上前缀?还是我嵌套类名?换句话说,如果日历具有类 foo-calendar,那么月份显示是否具有类“月”或“foo-month”或“foo-calendar-month”?
您遵循哪些策略将 CSS 类分配给库 HTML?
【问题讨论】:
-
谁来设计它们?我认为规范是由您创建 CSS 和 HTML,从而使您能够控制和了解需要类的位置以及何时不需要。
-
你在谷歌上搜索过“面向对象的 CSS”吗?
-
如果我正在生成 CSS,那么一切都会好起来的:我只需添加尽可能多的类来完成我需要的样式。但我正在编写其他开发人员将在尚未定义的 Web 应用程序中使用的组件。当然,为未知需求设计东西是浪费大量时间的好方法。所以我想做的是想出一个我可以遵循的策略,让这些其他开发人员在大多数情况下根据他们的要求设计他们的应用程序,而我现在不必投入大量时间。跨度>
-
"OOCSS:" 不,但我现在就去做。谢谢!