是否应该在CSS文件中定义用于JavaScript选择的类?

时间:2011-03-24 11:19:48

标签: javascript css standards

我们的设计师要求我们将用于JavaScript选择器的类添加到CSS文件中,注释表明它们是用于JavaScript的。目的是避免利益冲突;设计师可能会从元素中删除一个类,因为没有应用样式。

例如,标记可能是:

<div id="Book1" class="book">
</div>

然后如果“book”类用于JavaScript选择,CSS文件将包括:

.book {/* Used as a JavaScript selector */}

是否有使用此技术的示例,以及为什么要(或者不应该)使用它?我正在寻找这种技术的缺点,优点和标准或官方建议的例子。

2 个答案:

答案 0 :(得分:2)

这只是您的设计师寻求对css的某种形式的控制,以确保他/她的更改不会破坏您网站中的客户端功能。然而,问题在于,您现在正在将功能与样式混合在一起,在一个设计良好的站点中应该首先分开。

最好确保在要定位的元素上创建类,这些元素没有关联样式,仅用于客户端js目的。你总是可以同意一个约定,你可以在所有这些类前加上'js',例如jsMYCLASS,然后使用类似下面的jquery语法引用它们;

<div class='book jsBookItem'></div>

目标:

$('.jsBookItem');

在这个例子中,您可以看到原始的“书籍”样式与非样式类非常相似,但您的设计师可以独立于客户端代码更改/删除“书籍”样式,而现在只依赖于“jsBookItem”。

他/她的建议的另一个主要问题是它会膨胀css文件并增加下载/缓存样式表所花费的时间而对终端客户端没有任何好处。即使缩小css仍然会留下部分有效但未使用的块。

答案 1 :(得分:1)

我相信当多个开发人员使用项目时,这项技术非常重要。 问题是:如果有人知道课程是否仍然相关或已经过时,应该如何知道?

您还可以应用不同的规则来使JS选择器可识别。 我喜欢使用类似 jss _ 之类的前缀。