2010-02-03 56 views
0

我需要从内容中定义html类,因此几乎可以使用每个字符。根据html reference我可能会使用cdata,所以我不应该遇到问题。我认为,该CSS和/或JavaScript/jQuery将不会很好地玩。允许的html/css/javascript - 类语法

任何人都有什么经验可以使用没有问题的字符,或者如果有一个函数/插件/ ..整理类名,以便它们可用?

+0

看来HTML比CSS有更广泛的有效类定义。根据[W3C Validator](http://validator.w3.org/),':foo','-foo','!foo','.foo','$ foo'和'@ foo'都是有效的类。这可能对[基于DOM的模板引擎]非常有用(http://stackoverflow.com/q/9282315/116639)! – 2012-08-16 17:53:36

回答

5

CSS类名必须是通常的标识符(http://www.w3.org/TR/CSS21/syndata.html#characters

在CSS 2.1,标识符(包括 元素名,类和在 选择器的ID)可以只包含 字符[A-ZA-连字符( - )和下划线(_);以及字符U + 00A1和更高的ISO 10646 ,以及连字符( - )和下划线(_)的 。 他们不能以数字开头。

Javascript不介意,因为您将使用类名作为字符串。所以就javascript而言,你可以使用任何字符。

如果你想剥离你的类名到可用的CSS子集,一个简单的正则表达式就足够了。如果你想编码你的类名到同一个子集中,它会稍微困难一点,但我想你可以试着Base64-encode他们。这里有一些用于base64编码/解码的jQuery plugins

+0

因为他没有要求一个特定的版本,所以有趣的是知道这些类在[HTML 3](http://www.w3.org/MarkUp/html3/html3.txt)中曾经被句点分隔开来。 – Knu 2015-05-27 23:07:01

1

就类属性而言,您将遇到使用除[a-z],[A-Z]和[_-]以外的字符的问题。

对于任意数据,我会推荐(即将使用HTML5)data-x属性。
查看http://ejohn.org/blog/html-5-data-attributes/举例。

干杯

+0

感谢您的信息..我还没有读过这个,但它听起来很有趣.. – harpax 2010-02-03 14:30:55