Quelles balises HTML5 puis-je utiliser sans me soucier de la compatibilité du navigateur?

Je construis une application web pour une utilisation sur PC. Quelles sont les balises HTML5 à éviter pour éviter les problèmes de compatibilité avec les navigateurs comme IE8 et supérieur?

Note: la plupart des questions ont 1-3 ans à ce sujet.

92
demandé sur Swagg 2013-08-14 09:00:07

6 réponses

Vous avez demandé quelles balises HTML5 pour rester à l'écart.

Eh bien, certaines des balises de HTML5 de ma connaissance ont été faites pour des raisons sémantiques. comme ce qui suit par exemple.

<article> <section> <aside> <nav> <header> <footer> ..ect

Ceux-ci sont presque bien à travailler, et nécessitent juste un peu de CSS par exemple. display: block; pour fonctionner normalement dans la plupart des navigateurs, bien que dans les navigateurs plus anciens ie. Internet Explorer vous devez créer un élément en Javascript pour qu'il soit compatible.

Voici un exemple.

document.createElement('article');

Définirait l'élément <article> pour une utilisation dans Internet Explorer plus ancien.

Pour les balises HTML5 plus avancées qui nécessitent des fonctionnalités Javascript pour fonctionner sont quelques-uns comme les suivants.

<audio> <video> <source> <track> <embed> And most importantly <canvas> 

Ces éléments sont plus difficiles à supporter/shiv dans les anciens navigateurs. Bien que j'ai inclus un lien vers cross browser polyfills en bas, bien que je ne les ai pas personnellement étudiés.

, Donc je dirais que tout élément qui ne nécessite pas Les fonctionnalités Javascript sont parfaitement bien à utiliser avec un tout petit peu de code de support cross browser.

Si votre ciblage >IE8, alors vous devriez être très bien si vous utilisez un shiv.

Qu'est-ce que j'appelle les anciens navigateurs?

Prise en charge du navigateur pour les balises HTML5 aujourd'hui est.

<section>, <article>, <aside>, <header>, <footer>, 
<nav>, <figure>, <figcaption>, <time>, <mark>

Ne sont pas pris en charge par Internet Explorer 8 mais peut être fixé comme ce.

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]);
}

Et <audio> <video> <canvas> ne sont pas pris en charge dans

L'élément <embed> a un support partiel dans > IE8


Vous devriez également regarder dans cette balise.

 <meta http-equiv="X-UA-Compatible" content="IE=edge">

Cette balise meta indique à Internet Explorer d'afficher la page en mode IE le plus élevé disponible, au lieu d'entrer en mode de compatibilité et de rendre la page comme le ferait IE7 ou 8. Plus d'infos sur ce ici .


Liens D'assistance HTML5


Pour un coup de pied, vous pouvez vérifier HTML5 passe-partout

Pour les tables de support de compatibilité du navigateur, vous pouvez consulter - http://caniuse.com/

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

Liste des Polyfills HTML5 - https://github.com/Modernizr/Modernizr/wiki/...

Mise à Jour

Comme mentionné dans un commentaire

Soyez prudent avec la balise meta Compatible X-UA. Si vous utilisez quelque chose comme HTML5 boilerplate qui a des commentaires conditionnels entourant l'élément (cela se produit également avec le doctype html5 IIRC), vous pouvez rencontrer des problèmes avec IE9 se forçant en mode normes IE7 même avec la balise. IE grèves encore

Vous aimeriez peut-être cela, je n'ai rien pour le moment.

99
répondu iConnor 2017-05-23 11:46:26

Généralement, il y a des problèmes.

On m'a dit que votre question est formulée pour poser des questions sur HTML 5 tags mais c'est aussi utile pour regarder les nouvelles fonctionnalités à la lumière de tout Javascript que vous pourriez trouver ou écrire.

En pratique, la méthode recommandée consiste à tester l'existence de la caractéristique plutôt que d'un navigateur spécifique. Le script Modernizr peut être utile à cet égard, mais il existe également des rapports de caractéristiques indétectables dans HTML5 .

Certaines fonctionnalités comme local storage reviennent à IE8.

D'autres, comme FileReader, nécessitent IE10 / Firefox21 / Chrome27

Pour les informations actuelles, essayez http://caniuse.com

12
répondu Paul 2013-08-14 07:17:25

Écrivez HTML 5 comme vous le feriez normalement et utilisez Shims pour assurer la compatibilité avec les anciens navigateurs. Vous avez seulement besoin d'être prudent avec les API Javascript vraiment, parce que ceux-ci sont à peine shim-able. Si vous essayez de vous en tenir à baseline HTML 4 pour la compatibilité, il ne sert à rien D'utiliser HTML 5.

8
répondu deceze 2013-08-14 05:06:11

Pour une comparaison rapide des balises disponibles dans les navigateurs et du niveau de prise en charge de chaque balise, html5test.com est une excellente ressource.

4
répondu Burhan Khalid 2013-08-14 05:11:31

Vous recherchez une matrice de compatibilité HTML5

Http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5)

2
répondu bradgonesurfing 2013-08-14 05:02:13

Aussi, pour la meilleure compatibilité entre les navigateurs, je vous suggère d'utiliser cette réinitialisation.css créé par Eric Meyer. http://meyerweb.com/eric/tools/css/reset/ Cela rend les éléments qui diffèrent d'un navigateur à l'autre, de se comporter de la même manière dans tous les navigateurs.

2
répondu Pacuraru Daniel 2013-09-28 22:53:11