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.
In CSS, identifiers (including element names, classes, and IDs in selectors) can contain only the characters [a-zA-Z0-9] and ISO 10646 characters U+00A0 and higher, plus the hyphen (-) and the underscore (_); they cannot start with a digit, two hyphens, or a hyphen followed by a digit.
class selector selects elements with a specific class attribute. To select elements with a specific class, write a period (.) character, followed by the name of the class. You can also specify that only specific HTML elements should be affected by a class.
Solution. # character is used to create id in CSS.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With