39 votes

Quelles sont les meilleures pratiques pour les sites web multi-navigateurs ?

(J'aimerais que ce soit le wiki définitif de la communauté. Je l'ai semé à partir de ma propre réponse à cette question .)

Précisez tout

De nombreux problèmes liés à l'inter-navigation se résument à ceci : vous n'avez pas spécifié quelque chose, et les différents navigateurs font des suppositions différentes. Par conséquent :

Déclarer un doctype valide

Votre doctype indique au navigateur les règles que vous allez utiliser dans votre code. Si vous ne le spécifiez pas, le navigateur doit deviner, et les différents navigateurs deviendront différents.

D'après mon expérience, un doctype "strict" permet à IE de mieux se comporter (il permet des choses comme les sélecteurs CSS :hover sur les divs dans IE7).

Cet article donne de bons renseignements sur les doctypes.

Utiliser les normes du Web

Évitez les balises spécifiques aux navigateurs, ou ne les utilisez que si leur échec dans d'autres navigateurs n'a pas d'incidence sur l'expérience du site.

Validez votre HTML et votre CSS

Il n'est pas nécessaire que tout soit parfait, mais la validation est un bon retour d'information. Comme Jeff a dit :

Le fait de connaître les règles et les limites vous aide à définir ce que vous faites, et vous donne des munitions légitimes pour exprimer votre accord ou votre désaccord. Vous pouvez faire un choix éclairé, plutôt qu'un choix aléatoire du type "je fais ça et ça marche".

Imaginez que vous ayez ouvert une balise de paragraphe et que vous ne l'ayez jamais fermée. Si vous ouvrez ensuite une balise de liste, vouliez-vous qu'elle soit à l'intérieur du paragraphe ou non ? La validation vous aidera à le savoir, à fermer la balise et à éliminer toute ambiguïté.

Envisagez une réinitialisation CSS

Les différents navigateurs supposent des règles CSS de base différentes. Vous pouvez les aider à agir de la même manière en aplanissant explicitement les différences dès le départ. Eric Meyer, qui a écrit CSS : Le Guide Définitif , utilise cette remise à zéro . Un autre choix populaire est YUI Reset CSS .

Utiliser une bibliothèque Javascript pour les interactions DOM

Lorsque votre Javascript doit travailler avec des éléments sur votre page, il est préférable d'utiliser une bibliothèque comme jQuery, Prototype ou MooTools. Ces bibliothèques sont utilisées par des milliers de développeurs et elles prennent en compte la plupart des incohérences entre les interprétations de Javascript par les navigateurs, les gèrent en interne et vous fournissent un ensemble cohérent de commandes qui fonctionnent tout simplement. Essayer de trouver et de contourner toutes ces incohérences soi-même est une perte de temps et risque de créer des bogues.

Testé dans plusieurs navigateurs, traité en dernier lieu avec IE

Testez dans plusieurs navigateurs au fur et à mesure. En général, vous constaterez que les navigateurs autres que IE se comportent de la même manière et qu'IE est un cas particulier - surtout si vous suivez les conseils ci-dessus. Si nécessaire, vous pouvez ajouter les hacks IE dans une feuille de style distincte et ne la charger que pour les utilisateurs d'IE.

Quirksmode.com est un bon endroit pour traquer les différences aléatoires entre navigateurs.

Browshots.org peut aider à montrer comment votre page sera affichée dans un assortiment de navigateurs et de systèmes d'exploitation.

Échouer avec élégance

Aucun site ne sera parfait dans tous les navigateurs existants. Si un utilisateur ne dispose pas de Flash, de Javascript, de CSS avancé, etc., vous voulez que votre site soit utilisable de toute façon. Concevez en gardant cela à l'esprit :

Vérifiez le HTML brut

Essayez de charger votre site avec du HTML brut - pas de styles, pas de scripts. Des options de menu sont-elles disponibles ? Le contenu primaire précède-t-il le contenu secondaire ? Le site est-il utilisable, même s'il est laid ?

Envisager une amélioration progressive pilotée par les tests

Décrit dans cet article Cette technique utilise le javascript pour vérifier si un navigateur possède une capacité donnée, telle que la prise en charge d'une propriété CSS donnée, avant de l'utiliser sur la page. Elle est différente du reniflage de navigateur car elle teste les fonctionnalités plutôt qu'un navigateur spécifique.

13voto

Jeffrey Hines Points 1507

Utilisez une bibliothèque comme jQuery pour faire abstraction des différences entre le DOM, AJAX et JavaScript.

1 votes

Pas seulement pour faire AJAX. Je dirais d'en utiliser un même si vous ne faites pas d'appels asynchrones au serveur.

1 votes

Et pour utiliser spécifiquement jQuery, plutôt qu'une "bibliothèque comme jQuery", en raison de son effort concerté pour la compatibilité entre navigateurs.

0 votes

@Vinko - Vous avez raison. J'ai modifié ma réponse pour tenir compte de votre commentaire.

8voto

p5ycho_p3nguin Points 380

Veillez à ce que les fichiers HTML, CSS et Javascript soient séparés autant que possible. Si vous mélangez structure, présentation et comportement dans votre fichier HTML, il sera plus difficile de trouver et de résoudre les problèmes.

2voto

RedFilter Points 84190

Tenez compte des appareils mobiles.

2voto

cdmckay Points 11234

Utilisez Firebug dans Firefox pour :

  • Débogage/explication de votre JS.
  • Voir comment vos feuilles de style sont interprétées et les modifier à la volée pour voir comment résoudre votre problème.
  • Voyez combien d'appels vous faites pour des ressources à distance et combien de temps ils prennent.
  • Profilez votre code.

Chrome et IE8 ont des outils similaires intégrés qui peuvent être utilisés pour la même chose.

Opera et Safari (et IE) ont Firebug Lite .

0 votes

Quelqu'un a-t-il utilisé les outils IE8 et Chrome mentionnés ? Quel est leur nom et que pensez-vous d'eux ?

0 votes

IE8 dispose d'une "barre d'outils pour les développeurs d'Internet Explorer" optionnelle. Outil Lien ici qui peuvent être installés avec lui. Une version plus avancée de cet outil est fournie en standard avec les navigateurs IE comme IE11. Il suffit d'appuyer sur F12 pour qu'il se lance.

1voto

Joydeep Roy Points 1
  1. Utilisez la réinitialisation CSS au début de votre feuille de style...

    Vous pouvez en obtenir un aquí ...

  2. Validez votre code par w3c ...

    Vous pouvez valider votre code aquí par lien de page ou par simple copier-coller de l'élément de page

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X