IE8 не в состоянии отображать страницу полностью
Когда я открываю свой проект, отображаются только фон и изображение, которое не было найдено, в то время как страница соответствует 100% xhtml 1.1. Инструменты разработчика показывают, что IE прекращает рендеринг после логотипа SVG... Firefox работает как надо. Черт, ты IE!
2 ответа
Старайтесь не закрывать тег "object" самостоятельно.
<object data="/images/Logo_header.svg" type="image/svg+xml"></object>
вместо
<object data="/images/Logo_header.svg" type="image/svg+xml" />
Не уверен, если это ошибка, или FF восстанавливается изящно. Это допустимый XML, только если вы также обслуживаете свою страницу как XML, а вы - нет. Вы используете 'text/html' вместо 'application/xhtml+xml'.
Камиэль прав: вы не можете использовать самозакрывающийся тег XML в IE. В любом случае, поскольку IE не может отобразить SVG, вам все равно нужно будет включить некоторый запасной контент, например изображение, внутри объекта.
Я бы посоветовал не использовать подход sniff-and-serve-XHTML-as-XML-or-HTML, который вы используете в данный момент. Там нет никакой пользы для этого; вы будете сталкиваться с такими странными проблемами совместимости, как эта, поскольку ваши документы обрабатываются в разных контекстах, стилях и DOM. Более того, Vary: Accept
заголовок, который вы должны использовать в ответе, когда вы делаете это, делает кеширование гораздо менее эффективным в IE. В любом случае, W3 специально не разрешает XHTML-as-text/html для документов XHTML 1.1.
Либо старайтесь изо всех сил и служите только XHTML 1.1 (жертвуя совместимостью с IE), либо придерживайтесь подачи XHTML 1.0 Strict контента в виде текста / html всем желающим, соблюдая рекомендации по совместимости.