Атрибут classа HTML с пробелами является допустимым classом W3C?

О атрибуте classа HTML, который присваивает тегу CSS class (или classы?). Использование пространств, например, в

.... 

действует?

Этот синтаксис используется некоторыми веб-дизайнерами и происходит в экспортированный HTML-код Adobe InDesign (протестирован с версиями 5 и 6), а также другое программное обеспечение для генерации HTML …

Он ( class="ab" ) является допустимым синтаксисом W3C? Какие версии CSS и HTML? (начиная с которого версия стала действительной?)


EDIT: естественное подтексте “W3C сказать, как интерпретировать его?” (это «переопределение» или другое поведение визуализации?) был опубликован здесь .

это два разных classа a & b разделенные пробелом. см. w3c DOCS

class = cdata-list [CS]

этот атрибут присваивает элементу имя classа или набор имен classов. Любому количеству элементов может быть присвоено одно и то же имя или имена classов. Несколько имен classов должны быть разделены пробелами.


Если у вас есть два classа

 .a { font-weight: bold; } .b { font-weight: normal; } 

и назначить в classе = “ab” или class = “ba” , тогда более поздний class перезапишет предыдущий class с тем же свойством, поэтому шрифт будет нормальным .

Если вы измените порядок определения CSS,

 .b { font-weight: normal; } .a { font-weight: bold; } 

теперь более поздний class выделен жирным шрифтом, поэтому «перезаписать предыдущий class с таким же свойством» отображает шрифт шрифта жирным шрифтом .

Это поддерживается в IE 7 и выше, включая все современные браузеры, отличные от IE. Как отмечали другие комментаторы, на самом деле это список classов, а не один class с пробелами.

Лучший способ понять это – дать вашему примеру еще несколько вариантов:

 .... .... .... 

.ab {} в вашем css будет .ab {} на первый тег.
.a {} будет нацеливаться на первый и второй tags.
.b {} будет .b {} на первый и третий tags.

Вот почему использование нескольких classов в одном элементе может быть очень полезным.

Для вопросов селекторов CSS и псевдоселекторов мне нравится использовать эту (слегка устаревшую) таблицу http://kimblim.dk/css-tests/selectors/

одно имя classа не может иметь пробелов. элемент может иметь несколько classов, определяемых путем enums имен classов, разделенных пробелом

Это не будет работать в файле CSS или HTML.

означает, что элемент div имеет class a и class b AND class c.

Между тем, на стороне таблицы стилей, .abc { property: value; } .abc { property: value; } недействительно, потому что это буквально означает «элемент c с предком b с предком, имеющим class a» (и b и c, очевидно, не являются допустимыми элементами HTML), а .a .b .c { property: value; } .a .b .c { property: value; } будет означать «элемент, имеющий class c с элементом предка, имеющим class b с элементом предка, имеющим class a». Посмотрите правила CSS-специфики, если это не имеет смысла для вас.

Используйте пробелы или символы подчеркивания вместо пробелов.