Каковы наилучшие методы использования HTML с языками на основе XML, такими как SVG?
Вопрос
Просматривая этот и другие сайты, я узнал, что в настоящее время обслуживание веб-сайтов в формате XHTML считается вредным.
Доставка XHTML и обслуживание его в качестве application/xhtml+xml
в настоящее время не поддерживается большинством пользователей, просматривающих страницы, предоставляя xhtml как text/html
в лучшем случае это плацебо для меня, а в худшем — рецепт взлома сайтов, когда вам это меньше всего нужно.
Итак, мы вернулись к HTML 4.01.Если вместо этого я буду использовать свои страницы в формате HTML 4.01, можно ли использовать на странице SVG или любой другой язык на основе XML?
Если да, то как?
Решение
В HTML вы не сможете вставлять SVG напрямую.
Вы можете вставлять файлы SVG с помощью <object>
/<embed>
и в современных браузерах (Opera, Safari) также <img>
и CSS background-image
.
Вы можете вставить SVG data:
URI, чтобы избежать использования внешних файлов.
Простые математические выражения можно писать с помощью Unicode и базового HTML/CSS (Opera 9.5). поддерживает большой фрагмент MathML через CSS).Для чего-то более сложного вам придется использовать изображения, как это делает Википедия.
HTML неправильно интерпретирует префиксы пространства имен, поэтому вы не сможете (правильно) использовать другую разметку XML с HTML DOM.HTML5 имеет data-*
атрибуты для дополнений разметки, специфичных для приложения.Для метаданных рассмотрите микроформаты.
Однако если вы хотите встроить XML только для не-браузеров (роботов), вы можете использовать HTML-совместимое подмножество XHTML и согласование содержимого HTTP для отправки правильного XML с правильным типом клиентам, которые его понимают (если вы тщательно протестируете страницу как в режиме XML, так и в режиме HTML, тогда это не принесет вреда).
Другие советы
Вы можете (читай, я сам этого не пробовал) использовать встроенный объект и ввести его соответствующим образом.