Які теги HTML5 можна використовувати, не турбуючись про сумісність браузера?


93

Я будую веб-додаток для використання на ПК. Які теги HTML5 слід уникати, щоб запобігти проблемам сумісності з такими браузерами, як IE8 і вище?

Примітка: Більшість запитань на цю тему мають 1-3 роки.


48
Перевірте caniuse.com і html5please.com для отримання інформації про сумісність браузера уточнених.
rink.attendant.6

@deceze будь-які посилання, щоб дізнатися більше про shims?
Swagg

4
HTML5 Boilerplate - хороший ресурс
Майкл Петерсон

47
IMHO ви не можете нічого використовувати в веб-розробці, не турбуючись про сумісність браузера ...
Uooo

2
Див . Три рівня використання HTML5 . Рівень рівня 1 можна використовувати без проблем. Особливості 2-го рівня вишукано погіршуються Функції рівня 3 потребують поліфау, якщо турбота про старші веб-переглядачі викликає занепокоєння
Mathias Bynens

Відповіді:


100

Ви запитували, від яких тегів 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


Для початку старту ви можете перевірити HTML5 BoilerPlate

Для таблиць підтримки сумісності браузера ви можете ознайомитися - http://caniuse.com/

HTML5 Shiv - https://github.com/afarkas/html5shiv

Список поліфілів HTML5 - https: //github.com/Modernizr/Modernizr/wiki / ...

Оновлення

Як згадується в коментарі

Будьте обережні з мета-тегом X-UA-Compatible. Якщо ви використовуєте щось на кшталт котло html5, яке має умовні коментарі щодо елемента (це також трапляється з doctype html5 IIRC), ви можете зіткнутися з проблемами з IE9, змусивши себе перейти в режим стандартів IE7 навіть з тегом. IE знову вражає

Ви можете розглянути це, у мене немає нічого, що могло б це підкріпити.


Крім того, якщо ви можете вказати, що є старшим IE? 6,7,8?
Swagg

4
Як правило, старший IE - це <IE9
iConnor

Будьте обережні з мета-тегом X-UA-Compatible. Якщо ви використовуєте щось на кшталт котло html5, яке має умовні коментарі щодо <html>елемента (це також трапляється з doctype html5 IIRC), ви можете зіткнутися з проблемами з IE9, змусивши себе перейти в режим стандартів IE7 навіть з тегом. IE знову вражає.
chezone

Дякую за інформацію, будь-які повідомлення в блозі чи якусь інформацію, яку я можу додати у відповідь на це питання, було б добре :)
iConnor

12

Взагалі проблеми є.

Мені сказали, що ваше питання сформульовано для запитання про теги HTML 5 але також корисно дивитись на нові функції у світлі будь-якого Javascript, який ви можете знайти або написати.

На практиці рекомендованим методом є перевірка на наявність функції, а не конкретного браузера. Modernizr сценарій може бути корисним в цьому відношенні, але є також повідомлення про невизначених функцій в HTML5 .

Деякі функції, як local storage повернутися до IE8.

Інші, як FileReader , вимагають IE10 / Firefox21 / Chrome27

Для поточної інформації спробуйте http://caniuse.com


1
Треба зазначити, що localStorage & fileReader - це не теги HTML, ОП запитав, які теги HTML5 мають проблеми із сумісністю.
iConnor

О так. Існує цей великий список семантичних тегів, який все більше натискається на HTML5 як спосіб зробити вашу сторінку більш читаною і, можливо, більш зручною для SEO [або, можливо, не]. Є кілька нових вхідних елементів. Я думаю, що деякі з них можуть мати проблеми в одному або декількох браузерах. Я думаю, що каніуса може мати таку інформацію ...
Пол,

8

Напишіть HTML 5 так, як зазвичай, і використовуйте Shims, щоб забезпечити сумісність зі старими браузерами. Вам потрібно бути обережним лише з API Javascript, адже вони навряд чи здатні прошивати. Якщо ви намагаєтеся дотримуватися базового HTML 4 для сумісності, використовувати HTML 5 немає сенсу.


7
Я б із задоволенням використовував <!DOCTYPE html>як верхній рядок замість тих проклятих довгих потворних речей, котрі були вперше в нас.
Поль

Якщо це єдине, що змінюється між вашими HTML 4 та "HTML 5" документами ... у чому сенс? :)
деге

4

Для швидкого порівняння того, які теги доступні в браузерах, і який рівень підтримки кожного тегу, html5test.com - чудовий ресурс.


2

Ви шукаєте матрицю сумісності HTML5

http://en.wikipedia.org/wiki/Comppare_of_layout_engines_(HTML5)


2
Зверніть увагу: "Фактична точність цієї статті може бути порушена через застарілу інформацію. Будь ласка, оновіть цю статтю, щоб відобразити останні події або нещодавно доступну інформацію. (Березень 2013 р.)"
Герзанда

1
Так, можливо, це правда, але в цілому google html5 compatabilityя впевнений, що ресурсів багато.
bradgonesurfing

2

Крім того, для кращої сумісності браузера я пропоную використовувати цей reset.css, створений Еріком Мейєром. http://meyerweb.com/eric/tools/css/reset/ Це робить елементи, які відрізняються від браузера до іншого, поводитись однаково у всіх браузерах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.