Может ли атрибут data- * содержать теги HTML?
т.е. <img src="world.jpg" data-title="Hello World!<br/>What gives?"/>
Ответы
Ответ 1
Насколько я понимаю рекомендации, он в основном действителен, но лучше использовать объекты HTML.
Из ссылка HTML 4:
Вы также должны избегать и внутри значений атрибутов, поскольку ссылки на объекты допускаются в значениях атрибутов cdata. Кроме того, вам следует избегать > как > чтобы избежать проблем со старыми пользовательскими агентами, которые неправильно воспринимают это как конец тега при пересечении этого символа в значениях кавычек.
Из ссылка HTML 5:
Если не указано иное, атрибуты элементов HTML могут иметь любое строковое значение, включая пустую строку. За исключением случаев, когда явно указано, нет ограничений на то, какой текст может быть указан в таких атрибутах.
Так что лучше всего делать, как уже говорит @tdammers, - это избежать этих символов (цитируя ссылку W3C)
-
&
для представления знака &
.
-
<
для представления знака <
.
-
>
для представления знака >
.
-
"
для представления метки "
.
и декодировать их из своих значений сущности, если они должны использоваться как HTML.
Ответ 2
Предоставление вам услуги в виде текста /html, тогда да, это действительно.
Обратите внимание, что не только можно включить разметку внутри атрибутов, но атрибут srcdoc HTML5 в элементе iframe положительно поощряет его. В проекте HTML5 говорится:
В синтаксисе HTML авторам необходимо только не забудьте использовать U + 0022 ЦЕН. символов ( "), чтобы обернуть атрибут содержимое, а затем, чтобы избежать всех U + 0022 ЦЕНА ЦИТАТЫ (" ) и U + 0026 Символы AMPERSAND (&),....
Обратите внимание, что при подаче с типом содержимого XML (например, application/xhtml + xml) он недопустим или даже корректно сформирован.
Ответ 3
Я бы сказал, да, так как в нем все еще действительный HTML5. Старые браузеры (какие?) Не могут правильно разобрать.
Раздел 3.2.4.1 Атрибуты текущего HTML5-проекта говорят об этом:
Если не указано иное, атрибуты элементов HTML могут иметь любое строковое значение, включая пустую строку. За исключением случаев, когда явно указано, нет ограничений на то, какой текст может быть указан в таких атрибутах.
HTML-теги внутри атрибутов также проверяются на http://html5.validator.nu
Ответ 4
Нет. Это было бы неверно - HTML не позволяет < или > внутренние атрибуты.
<img src="world.jpg" data-title="Hello World!<br/>What gives?"/>
будет действительным, но он отобразит < br/ > буквально, не как символ новой строки.