2011-04-23 66 views
1

我经常使用CSS ID或类来选择Javascript中的元素。这些类中的许多类都只存在于该用例中,并且根本没有任何样式。区分样式和Javascript的CSS类

我现在认真思考如果明确地标记这些类是有好处的。也许像是一个领先的下划线(例如class="_field")。

事情是,我从来没有听说过这样的做法。这是建议吗?也许已经用于更大的项目?什么样的标记会有意义?我在某处读到一个领先的下划线可能有问题。我还可以使用什么来轻松识别这些“仅限Javascript”类?

+1

前缀的所有JavaScript类与' js_'也许?前导下划线是CSS的无效类名。虽然它可能仍然有效,但如果这些类不用于样式。 – 2011-04-23 15:09:07

+4

领先的下划线在类名称的开头非常有效。根据[语法](http://www.w3.org/TR/CSS21/grammar.html#scanner),“名称”只是一个或多个“nmchars”的序列,下划线是“nmchar ”。 – Pointy 2011-04-23 15:32:15

+0

@Pointy,+1;我在某个时候误读了[Syntax和基本数据类型](http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier),并没有意识到。 ...哎呀。 =) – 2011-04-23 16:06:09

回答

4

您可以将其作为个人编码约定。该规范没有声明class属性必须仅用于样式,或仅用于脚本。你可以用它来以任何你想要的方式对你的元素进行分类,所以对你如何命名和组织你的类没有限制。

-1

最好使用JavaScript来处理JavaScript,因为元素只有一个唯一的id,而类可以应用于多个HTML元素。

+0

通常你想将一些JavaScript函数应用到多个元素,为此你也想使用类。 – Wim 2011-04-23 15:14:17

+1

我不同意,类和ID在JS和CSS中填充相同的函数。所以,如果元素是唯一的,那么使用一个ID,但是当你在JS中使用几个元素时使用类是完全正确的。 – 2011-04-23 15:14:49

1

大部分时间我发现JS中使用的类名称与我想在CSS中执行的样式匹配。只要你正确地命名它们,只有CSS或JS才能使用类名是没有什么大不了的。

0

您可能需要使用HTML5建议的data-* attributes。他们甚至可以使用HTML4,但生成的代码无效。

一点题外话,ExtJS的使用了“命名空间”为自己的树节点自定义属性相当长的一段时间:

<div class="x-tree-node-el x-tree-node-leaf x-unselectable cls" 
    ext:tree-node-id="Foobar"> 

(他们应该改变,要data-ext-tree-node-id BTW)