Есть ли побочные эффекты при загрузке html5shiv в каждом браузере?

На странице кода Google html5shiv пример использования включает условное выражение IE:

<!--[if lt IE 9]>
    <script src="dist/html5shiv.js"></script>
<![endif]-->

Однако на странице html5shiv github описание объясняет:

Этот сценарий является дефактным способом, позволяющим использовать элементы секционирования HTML5 в устаревшем Internet Explorer, а также стили HTML5 по умолчанию в Internet Explorer 6–9, Safari 4.xiPhone 3.x) и Firefox 3.x.

Очевидное противоречие. Итак, чтобы удовлетворить мое любопытство, для всех, кто изучал код, есть ли какие-либо неблагоприятные побочные эффекты при загрузке html5shiv в каждом браузере (без условного IE)?

РЕДАКТИРОВАТЬ: Моя цель, очевидно, состоит в том, чтобы использовать Shiv без условного IE.

1 ответ

Решение

Я думаю, что условный комментарий на странице googlecode (обновленный, вероятно, больше года назад) вызван тем, что для IE8 и ниже необходим трюк javascript, позволяющий стилизовать CSS- элементы HTML5.

FF4, Safari 4, Opera 11 и ниже просто не применяются display:block по умолчанию для "неизвестных" элементов, но вам нужно только сброс CSS, чтобы изменить это поведение.

В этих браузерах html5shiv просто добавляет <style> в начале <head>, похожий на этот:

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}

Источник: http://meyerweb.com/eric/tools/css/reset/

Таким образом, это не должно давать никаких побочных эффектов, поскольку эти правила могут быть перезаписаны последовательными объявлениями.

Пока вы добавляете это правило поверх вашего основного CSS-файла, вполне нормально включать html5shiv только для IE, вы сохраните http-запрос.

Если вы хотите, чтобы ваш веб-сайт html5 также был совместим с FF2 (если это так, вы маньяк), посмотрите этот учебник.

ОП обнаружил, что html5shiv уже предоставляет запасной вариант для FF2!

Другие вопросы по тегам