Я создаю веб-приложение для использования на ПК. Каких тегов HTML5 следует избегать, чтобы предотвратить проблемы совместимости с браузерами, такими как IE8 и выше?
Примечание: большинству вопросов по этой теме от 1 до 3 лет.
Я создаю веб-приложение для использования на ПК. Каких тегов HTML5 следует избегать, чтобы предотвратить проблемы совместимости с браузерами, такими как IE8 и выше?
Примечание: большинству вопросов по этой теме от 1 до 3 лет.
Ответы:
Вы спросили, от каких тегов HTML5 держаться подальше.
Что ж, некоторые теги из HTML5, насколько мне известно, были созданы по семантическим причинам. как, например, следующее.
<article> <section> <aside> <nav> <header> <footer> ..ect
С ними почти нормально работать, просто требуется немного CSS, например. display: block;
для нормальной работы в большинстве браузеров, хотя в старых браузерах, т.е. Internet Explorer, вам необходимо создать элемент в Javascript, чтобы он был совместим.
Вот пример.
document.createElement('article');
Настроил бы <article>
элемент для использования в более раннем Internet Explorer.
Для более продвинутых тегов HTML5, требующих для работы функциональности Javascript, есть следующие.
<audio> <video> <source> <track> <embed> And most importantly <canvas>
Эти элементы сложнее поддерживать в старых браузерах. Хотя я включил ссылку на кроссбраузерные полифилы внизу, хотя я лично не исследовал их.
Поэтому я бы сказал, что любой элемент, который не требует функциональности Javascript, прекрасно подходит для использования с небольшим количеством кода поддержки кроссбраузерности.
Если ваш таргетинг > IE8, у вас все будет в порядке, если вы используете заточку.
Как я могу назвать старые браузеры? <IE9
Браузер поддерживает теги HTML5 на сегодняшний день.
<section>, <article>, <aside>, <header>, <footer>,
<nav>, <figure>, <figcaption>, <time>, <mark>
Не поддерживаются в Internet Explorer ниже 8, но это можно исправить.
CSS:
section, article, aside, header, footer, nav, figure, figcaption{
display: block;
}
time, mark {
display: inline-block;
}
Javascript:
var elements = ['section', 'article', 'aside', 'header', 'footer', 'nav', 'figure', 'figcaption', 'time', 'mark'];
for( var i = 0; i < elements.length; i++ ) {
document.createElement(elements[i]);
}
И <audio> <video> <canvas>
не поддерживаются в <IE 9
<embed>
Элемент имеет частичную поддержку в > IE8
Вы также должны изучить этот тег.
<meta http-equiv="X-UA-Compatible" content="IE=edge">
Этот meta
тег указывает Internet Explorer отображать страницу в самом высоком доступном режиме IE, вместо того, чтобы переходить в режим совместимости и отображать страницу, как в IE7 или 8. Подробнее об этом здесь .
Для быстрого старта вы можете проверить HTML5 BoilerPlate
Таблицы поддержки совместимости браузеров вы можете найти на http://caniuse.com/
HTML5 Shiv - https://github.com/afarkas/html5shiv
Список полифиллов HTML5 - https: //github.com/Modernizr/Modernizr/wiki / ...
Обновить
Как упоминалось в комментарии
Будьте осторожны с метатегом X-UA-Compatible. Если вы используете что-то вроде шаблона html5, который имеет условные комментарии, окружающие элемент (это также происходит с доктипом html5 IIRC), вы можете столкнуться с проблемами, когда IE9 переводит себя в стандартный режим IE7 даже с тегом. IE снова наносит удар
Вы можете изучить это, в данный момент мне нечего подтвердить.
<html>
элемент (это также происходит с доктипом html5 IIRC), вы можете столкнуться с проблемами, когда IE9 переводит себя в стандартный режим IE7 даже с тегом. IE снова поражает.
В общем, есть проблемы.
Мне сказали, что ваш вопрос сформулирован как вопрос о тегах HTML 5, но также полезно взглянуть на новые функции в свете любого Javascript, который вы можете найти или написать.
На практике рекомендуется проверить наличие функции, а не конкретного браузера. Сценарий Modernizr может быть полезен в этом отношении, но есть также сообщения о необнаруживаемых функциях в HTML5 .
Некоторые функции, например, local storage
вернуться в IE8.
Другим, например FileReader
, требуется IE10 / Firefox21 / Chrome27.
Для получения актуальной информации попробуйте http://caniuse.com
Напишите HTML 5, как обычно, и используйте прокладки для обеспечения совместимости со старыми браузерами. Вам нужно только быть осторожным с API-интерфейсами Javascript, потому что они вряд ли совместимы. Если вы пытаетесь придерживаться базового уровня HTML 4 для совместимости, нет смысла использовать HTML 5.
<!DOCTYPE html>
в качестве верхней строчки вместо тех проклятых длинных уродливых вещей, которые нам навязывали в прежние времена.
Чтобы быстро сравнить, какие теги доступны в каких браузерах и какой уровень поддержки каждого тега, html5test.com - отличный ресурс.
Вы ищете матрицу совместимости HTML5
http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5)
html5 compatability
я уверен, что есть много ресурсов.
Кроме того, для лучшей кроссбраузерной совместимости я предлагаю вам использовать файл reset.css, созданный Эриком Мейером. http://meyerweb.com/eric/tools/css/reset/ Это заставляет элементы, которые различаются от браузера к другому, вести себя одинаково во всех браузерах.