Есть ли зарезервированные ключевые слова для значений атрибутов в HTML?
Я имею в виду, есть ли слова, которые мы не должны использовать в качестве <tag class='reserved' />
, класс, идентификатор или что-то еще?
Я планировал стилизовать ссылки с помощью класса "link", это хорошая идея?
2 ответа
Зарезервированных ключевых слов для class
атрибут с предупреждением о том, что использование специальных символов, отличных от букв, цифр или подчеркивания в имени, или начало имени с цифры, затрудняет использование его в качестве селектора CSS.
Проверьте спецификацию HTML:
Атрибут, если указан, должен иметь значение, представляющее собой набор разделенных пробелами токенов, представляющих различные классы, к которым принадлежит элемент.
...
Никаких дополнительных ограничений на токены, которые авторы могут использовать вclass
атрибут, но авторам рекомендуется использовать значения, которые описывают характер контента, а не значения, которые описывают желаемое представление контента.
... где набор разделенных пробелами токенов - это именно то, что вы думаете, и не имеет никаких других ограничений.
Когда класс используется в качестве селектора CSS...
... грамматика CSS вступает в игру. Имя CSS может содержать:- буквенно-цифровые символы
[a-zA-Z0-9]
- подчеркивание
_
- дефис
-
- выберите не ASCII/ расширенные символы ASCII (восьмеричные
\240-\377
- включает в себя общие символы, буквы с диакритическими знаками и т. Д.) - или персонаж сбежал от
\
, Экранированные символы могут быть кодовой точкой Unicode (до шести байтов, оканчивающейся пробелом, например, обычным пробелом)." "
(если необходимо) или не буквенно-цифровой символ.
Кроме того, имя не может начинаться с (буквального) числа или дефиса, поэтому их необходимо экранировать. Поскольку экранированный символ не должен быть буквенно-цифровым (особенно 0-9
или же a-f
(чтобы я мог отличить от точек Юникода, я полагаю), значение Юникода должно использоваться, если имя селектора начинается с цифры.
Пример (отмечая, что \32
значение Юникода для 2
):
...
<style>
.\32 34 { color: red; }
.big-\$-G { color: green; } /* the color of money */
</style>
...
<div class="234">Some text here.</div>
<div class="big-$-G">This is in the "big-$-G" class.</div>
...
На мой взгляд, использование "ссылки" в качестве имени класса для ссылок хорошо, если оно применяется ко всем ссылкам, которые вы будете определять. В противном случае используйте что-то вроде "ImportantLinks", "MainLinks" и т. Д.
Я считаю, что это нормально использовать слово link
для именования классов. Тем не менее, постарайтесь дать ему более явное имя, чтобы оно не конфликтовало с другим кодом в будущем.
Просто зайдите в источник такого фреймворка, как bootstrap, и посмотрите, как они называют свои классы.
Использовать пространство имен
В случае JavaScript и JSX (JavaScript XML) есть некоторые атрибуты HTML, которые зарезервированы только для JavaScript, а не для JSX. Например, 1. класс 2. для