在HTML元素的class属性中放入无效的CSS字符(`@`,`:`,`!`)是否存在任何已知问题?

Ken*_*h J 3 html javascript css cross-browser css-selectors

是否有与把无效的CSS类的字符(任何已知的问题@,:,!在一个HTML元素的class属性)?像这样:

<input type='text' class='compare id:txtSecondary'/>
<input type='text' class='compare @txtSecondary'/>
Run Code Online (Sandbox Code Playgroud)

Ric*_*uen 6

CSS有趣的事实!在语法和基本数据类型(CSS2)建议的4.1.3节中,它说......

标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(请参阅下一项).例如,标识符"B&W?" 可以写成"B \&W \?" 或"B\26 W\3F".

因此,您可以在CSS中包含特殊字符:

<style type="text/css">
    .\@user { /* valid! */
        color:red;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

此外,该class属性是一个cdata-list,它基本上意味着" 除了新行和多个空格之外的任何文本 ".

所以你可以在你的标记中加入这样的东西:

<div class="@user">
    This is an @user
</div>
Run Code Online (Sandbox Code Playgroud)

你的问题是没有这么多的@还是:人物,但这些空间 您在翻腾.(因为在class属性空间意味着什么特殊含义:" 多类名称必须用空格字符分开. ")