CSS 类名广泛支持哪些字符?

发布于 2024-08-28 09:57:25 字数 299 浏览 13 评论 0原文

正如此处以及其他地方所详细说明的, html/css 类名是 az、AZ、0-9、连字符和下划线,第一个字符应该是字母。但实际上,大多数浏览器实际上支持哪些字符?更具体地说,我想知道哪些浏览器可以正确理解类名中的斜杠(/),以及哪些浏览器支持以数字开头的类名。

我主要感兴趣的是获得 html 而不是 xhtml 的答案,以防存在差异。

谢谢。

As detailed here among other places, the only valid characters in a html/css class name is a-z, A-Z, 0-9, hyphen and underscore, and the first character should be a letter. But in practice, what characters are in fact supported by most browsers? More specifically, I wonder what browsers properly understands a slash (/) in a class name, and what browsers support class names starting with a number.

I'm primarily interested in getting an answer for html rather than xhtml, in case there is a difference.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

您的好友蓝忘机已上羡 2024-09-04 09:57:25

请注意,类名是由 HTML 定义的,而不是由 CSS 定义的。 HTML4 class属性是一个cdata-list,它是空格分隔的标记。因此,单个类名标记可以包含除空白字符之外的任何字符。

我想知道哪些浏览器可以正确理解类名中的斜杠 (/),以及哪些浏览器支持以数字开头的类名。

要在 CSS 类选择器中引用此类名称,您需要使用转义。例如:

<div class="1blah/bläh">

匹配:

.\31 blah\2F bläh { ... }

所有当前浏览器都支持此功能。 IE5 不支持它,但幸运的是这不再是一个问题。 (如果您担心字符编码不匹配,您可能更愿意将 ä 编码为 \E4,但这不是 CSS 本身的限制。)

如果您询问哪些浏览器可以让您摆脱无效选择器的困扰

.1blah/bläh

那么,谁在乎呢?只需使用有效的即可。

Note that class names are defined by HTML, not CSS. HTML4 says the class attribute is a cdata-list, which is space-separated tokens. So a single classname token can contain any character except the whitespace characters.

I wonder what browsers properly understands a slash (/) in a class name, and what browsers support class names starting with a number.

To refer to such names in a CSS class selector you would need to use an escape. eg.:

<div class="1blah/bläh">

is matched by:

.\31 blah\2F bläh { ... }

This is supported by all current browsers. It wasn't supported by IE5, but that's thankfully no longer a concern. (If you had concerns about character encoding mismatches, you might prefer to encode the ä as \E4, but that's not a limitation of CSS as such.)

If you're asking which browsers will let you get away with the invalid selector

.1blah/bläh

Then, well, who cares really? Just use the valid one.

苦妄 2024-09-04 09:57:25

http://www.w3.org/TR/2008/ REC-CSS2-20080411/syndata.html

如果您查看语法,您就会明白标识符的定义如下,

ident       {nmstart}{nmchar}*
nmstart     [a-zA-Z]|{nonascii}|{escape}
nmchar      [a-z0-9-]|{nonascii}|{escape}
nonascii    [^\0-\177]
unicode     \\[0-9a-f]{1,6}[ \n\r\t\f]?

这就是您的答案..

(这是针对 CSS2 的)

http://www.w3.org/TR/2008/REC-CSS2-20080411/syndata.html

If you look at the grammar you understand that identifiers are defined as

ident       {nmstart}{nmchar}*
nmstart     [a-zA-Z]|{nonascii}|{escape}
nmchar      [a-z0-9-]|{nonascii}|{escape}
nonascii    [^\0-\177]
unicode     \\[0-9a-f]{1,6}[ \n\r\t\f]?

so here's your answer..

(this is for CSS2)

離殇 2024-09-04 09:57:25

/ 和其他符号用作选择器(尤其是在 CSS3 中),因此不能在类名中使用。支持的字符是您已经说过的字符。

/ and other symbols are used as selectors (especially in CSS3) so can not be used in class names. The supported characters are the ones you already said.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文