HTML5shiv vs Dean Edwards IE7-js vs Modernizr - что выбрать?

113

Я собираюсь создать свой первый сайт HTML5 и собираюсь работать с IE.

Есть html5shiv, Dean Edwards ie7-js, а затем Modernizr. Все ли они в основном одинаковы? Я не понимаю, по какому маршруту идти.

PaulM
источник
1
+10 за отличный вопрос.
Snekse

Ответы:

124

Нет, они совсем не такие; они делают совершенно разные вещи.

  • html5shiv позволяет использовать новые теги HTML5 в версиях IE, которые их не понимают. Без него IE будет подавляться этими тегами, поэтому вам понадобится это, если вы собираетесь использовать теги. Однако не ожидайте, что это заставит теги что-либо делать в IE! Это просто не дает браузеру жаловаться на них.

  • modernizr устанавливает набор классов в вашем HTML в зависимости от доступных функций, которые вы можете использовать для изменения вашего макета в соответствии с тем, что поддерживает браузер. Он также позволяет использовать новые теги HTML5 в IE , например html5shiv.

  • ie7.js (а также ie8.jsи ie9.js) использует Javascript для обновления некоторых недостающих функций в IE.

Насколько мне известно, между ними нет пересечения (кроме html5shiv / modernizr), поэтому вы можете использовать любую их комбинацию, в зависимости от того, какие функции вам нужно реализовать.

Раз уж я затронул эту тему, и поскольку вы спрашиваете об инструментах, которые сделают IE более совместимым с другими браузерами, я предлагаю вам также изучить CSS3Pie , который сделает вашу жизнь намного счастливее, если вы планируете использовать закругленные углы на своем сайте. (плюс одна или две другие функции).

Это также не имеет пересечения с другими тремя продуктами, которые вы упомянули, хотя все они направлены на то, чтобы немного упростить работу со старыми версиями IE.

Spudley
источник
Это ответ, который я искал. Спасибо :)
PaulM
64
Modernizr, по сути, включает в себя весь html5shiv.
Пол Айриш
Фантастический обзор. Конечно, тоже дал мне какое-то направление. Спасибо!
ebrandell
2
@RoyiNamir - Modernizr устанавливает классы в HTML. Сам он больше ничего не делает с этими классами, но вы можете использовать другие библиотеки JS или CSS для ссылки на эти классы и делать все, что захотите, так же, как и для любого другого класса в вашем HTML-коде. Пример: вы хотите использовать placeholderв своем теге ввода. Но старый IE его не поддерживает. Modernizr добавит класс no-placeholderв IE; вы можете написать код Javascript, который ссылается на этот класс, чтобы вы могли реализовать скрипт, имитирующий функцию заполнителя, не запуская его в браузерах, которым он не нужен. Надеюсь, это все объясняет
Spudley
1
IE9.jsделает все, что делает html5shiv.
Фил
12

Самый простой способ начать новый проект HTML5 - использовать initializr . Он поможет вам создать и загрузить файлы проекта HTML5.

ZOZ
источник
5

они в чем-то одинаковы, и какой путь - это банкомат, в любом случае неплохое предположение, и для записи, есть один, который вы пропустили, http://html5boilerplate.com/ Это своего рода повторение нескольких лет назад, когда прототип и jQuery боролись в одном пространстве. Я лично рискую, что jQuery выиграет, но пока неизвестно, кто из них выиграет этот конкретный бой. Не думаю, что могу порекомендовать dean edwards ie7-js, поскольку он в основном касается того, чтобы IE7 работал как другие более умные и симпатичные браузеры, а не использовал весь HTML5 в той же мере, что и другие фреймворки.

ОтецШторм
источник
2
Спасибо, что упомянули шаблон. Я собирался включить это в свой вопрос, но хотел, чтобы он относился к трем пунктам моего вопроса, так как Modenizer включен в шаблон.
PaulM
1
Вы ошибаетесь в отношении того, что такое html5boilerplate, html5boilerplate - это пакет, содержащий то, что вам нужно для запуска веб-проекта, например initializr, в какой-то момент в более старых версиях html5boilerplate и даже, возможно, сейчас, это объяснит, что вы должны использовать modernizr или html5shiv и не используйте оба, поскольку modernizr делает то, что вам нужно, также вы должны загрузить собственный modernizr для своей производственной среды и использовать только то, что вам нужно, если вы не собираетесь использовать классы, поставляемые modernizr, тогда вам следует придерживаться html5shiv!
Neo
html5boilerplate сильно изменился с тех пор, как этот вопрос был задан в 2010 году и сейчас. Тогда он сделал то, что требовалось в заданном тогда вопросе, включил все необходимое для запуска проекта HTML5. исходный вопрос был: «Я хочу создать свой первый HTML5». Я по-прежнему считаю, что html5boilerplate был приемлемой альтернативой для вопроса, заданного в то время, когда его задавали.
FatherStorm