#html
#HTML
Вопрос:
Мои вопросы просты:
Допустимо ли следующее? Если это так, будет ли это ломаться в некоторых браузерах?
<div data-text="Blah blah blah
More blah
And just a little extra blah to finish"> ... </div>
Какие символы «должны» быть закодированы в значениях атрибутов? Я знаю, что "
должно быть amp;quot;
, но требуются ли какие-либо другие для кодирования?
Комментарии:
1. Как насчет HTML4? Отличаются ли там правила?
Ответ №1:
Допустимо ли следующее?
Это допустимый фрагмент HTML5, да.
может ли это сломаться в некоторых браузерах?
Маловероятно.
Какие символы «должны» быть закодированы в значениях атрибутов? Я знаю, что
"
должно бытьamp;quot;
, но требуются ли какие-либо другие для кодирования?
Это зависит от того, заключено ли значение атрибута в двойные, одинарные кавычки или без кавычек.
Для формы, заключенной в двойные кавычки, "
должна быть заменена ссылка на символ, и amp;
возможно, потребуется заменить ссылку на символ в зависимости от символов, которые следуют за ней. Смотрите атрибут-значение-вдвойныхкавычках-состояние
Для формы, заключенной в одинарные кавычки, '
должна быть заменена ссылкой на символ, и amp;
может потребоваться заменить ссылку на символ в зависимости от символов, которые следуют за ней. Смотрите attribute-value-состояние в одинарныхкавычках
Для формы без кавычек TAB
, LINEFEED
, FORMFEED
, SPACE
, >
amp;
должны быть заменены ссылками на их символы, и,, возможно, потребуется заменить ссылкой на его символ в зависимости от символов, которые следуют за ним. Смотрите атрибут-значение-без кавычек-состояние
Комментарии:
1. Есть еще символы, которые должны быть закодированы как часть значения атрибута без кавычек . Например, символ « должен быть закодирован, иначе это будет недопустимый HTML5. Причина этого в том, что символ « может использоваться для выделения значения атрибута без кавычек в старых версиях IE. Вот инструмент, который сообщит вам, можно ли использовать данное значение атрибута без кавычек: mothereff.in/unquoted-attributes#foo`bar
2. Что касается того, когда
amp;
необходимо кодировать, см. mathiasbynens.be/notes/ambiguous-ampersands .
Ответ №2:
Существуют разные требования к разным атрибутам, поэтому единого ответа нет. Например, атрибуты title допускают перевод строк, но атрибут class представляет собой разделенную пробелом строку строковых маркеров.
Для элементов данных, хотя в спецификации указано пространство имен:
не содержит символов в диапазоне от U 0041 до U 005A (от ЛАТИНСКОЙ ЗАГЛАВНОЙ БУКВЫ A до ЛАТИНСКОЙ ЗАГЛАВНОЙ БУКВЫ Z).
Кроме этого, это не делает никаких различий.