Есть ли побочные эффекты при загрузке 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.x (и iPhone 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!