Как использовать HTML5 в IE 7? - PullRequest
10 голосов
/ 02 января 2012

Мне было интересно, есть ли способ сделать код html5 видимым в Internet Explorer 7 или менее.

Например

<div id="container"> 
    <header id="header"> 
        something 
    </header>
</div>

В Internet Explorer 7 заголовок вообще не отображается.

Я нашел обходной путь здесь , включающий скрипт IE HTML5, который создает элементы html5 с помощью javascript. Но происходит то, что тег <header> выглядит совсем не так, как в других браузерах.

Так что мой вопрос: еще рано использовать HTML5 или как я могу заставить его работать в разных браузерах?

Ответы [ 8 ]

12 голосов
/ 02 января 2012

Этот (действительно) невероятный кусочек Javascript должен удовлетворить 100% ваших потребностей в совместимости с HTML5:

http://www.modernizr.com/

6 голосов
/ 02 января 2012

Перед использованием HTML5 необходимо учитывать 2 важных момента:

  1. Целевая аудитория (с выбором браузера)
  2. HTML5 Полезные функции на вашем сайте.

Если вы уверены, что многие из ваших пользователей используют IE8 и ниже, вам следует избегать использования HTML5 почти полностью.

Поэтому, когда вы говорите, "слишком рано для использованияHTML5 пока нет », ответ зависит от вашей пользовательской базы.IE имеет хорошую поддержку HTML5 только с версии 9 и выше.

Невозможно заставить расширенные функции HTML5 работать в IE7 / 8 ... html5.js, на который вы ссылались, просто делаетваш CSS, чтобы «не игнорировать» какие-либо элементы HTML5 и применять стилизацию. Он не делает ничего, кроме этого.

Чтобы получить информацию обо всех основных браузерах и получить оценку, вы можете проверить html5test.com

Кроме того, вы также можете ознакомиться с очень хорошо объясненным учебником по HTML5, который называется DesignMobileWeb и доступен на http://itunes.apple.com/in/app/designmobileweb/id486198804?mt=8

. Пожалуйста, помните, что если у вас будет базовый сайт, использование HTML5 должно бытьизбегать.Вы должны рассмотреть HTML5, только если вы планируете использовать Локальное хранилище, Автономный доступ и Формы HTML5 для мобильных устройств и т. Д.

5 голосов
/ 02 января 2012

IE <9 не распознает элементы HTML5 и не будет генерировать их. Поэтому я использую этот бит JS для генерации: </p>

var e = ("abbr,article,aside,audio,canvas,datalist,details,
figure,footer,header,hgroup,mark,menu,meter,nav,output,
progress,section,time,video,figcaption,summary").split(',');

for (var i = 0; i < e.length; i++){
    document.createElement(e[i]);
}

Я использую этот условный комментарий, чтобы проверить, нужно ли мне запускать скрипт

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

Конечно, вам нужно будет стилизовать теги для IE <9, но вам все равно придется это делать. </p>

2 голосов
/ 02 января 2012

Начните с этого: http://html5boilerplate.com/. Это должно решить большинство ваших проблем. Отлично работает.

1 голос
/ 18 мая 2012

IE версии <9 не будут отображать элементы, которые они не распознают, поэтому новые элементы HTML5, заголовок и т. Д. Исключены из списка.Другие браузеры отображают нераспознанные элементы, но без стилей. </p>

Способ обойти это - «показать» новые элементы в IE, впрыскивая их в DOM напрямую, используя JavaScript.Вы должны сделать это только один раз на каждом просмотре страницы.

Два стандартных способа сделать это:

Modernizr также делает целый ряд других вещей, связанных с обнаружением функций.

0 голосов
/ 23 января 2014

Это очень старый ... Черт ... Но я думаю, что это может кому-то помочь, хотя

Я использовал эту мету

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

И все исправили, не используя больше скриптов ...

Нашел здесь: http://www.validatethis.co.uk/news/fix-bad-value-x-ua-compatible-once-and-for-all/

0 голосов
/ 02 января 2012

Я проверяю, поддерживает ли запрашивающий клиент тип mime application / xhtml + xml (он является частью заголовка accept, отправившего запрос).

Если это не так, то я отправляю клиенту версию страницы, используя узлы div вместо большинства семантических узлов html5.

0 голосов
/ 02 января 2012

Попробуйте использовать chromeframe - http://code.google.com/chrome/chromeframe/

Само собой, хотя вы не можете использовать большинство интересных новых функций HTML5 с IE7.Это просто не реализовано в браузере просто и просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...