The trashiest blog in the World...

Aller au contenu | Aller au menu | Aller à la recherche

Le casse tête Internet Explorer...

Quel concepteur de sites web - pour le peu qu'il souhaite que son site puisse correctement s'afficher sur plusieurs navigateurs sans perdre ses fonctionnalités ou son design - n'en est arrivé à maudire le tristement célèbre Internet Explorer ?

Je puis vous assurer que ce fut souvent mon cas :-) En effet, malgré l'omniprésence de ce butineur sur la toile (bien qu'il ne soit pas en majorité selon les statistiques du site x-tnd.be - détrôné par Firefox) je suis un fervent utilisateur de Linux. Ceux qui ont essayé me comprendront quand je dirai que d'installer IE dans un Linux n'est pas forcément une sinécure ; qui plus est il faut posséder une licence de windows pour ce faire en toute légalité...

Bref, je me suis orienté depuis longtemps vers Firefox bien plus souple et respectueux des standards. Or - contrairement à certains webmasters qui n'utilisent que IE et ne programment donc qu'en conséquence - j'ai toujours prodigué d'énormes efforts pour que chaque site puisse fonctionner sur le plus grand nombre de butineurs possibles. Actuellement, depuis les dernières mises à jour en date, x-tnd.be fonctionne de façon similaire sous Firefox (1.5), Internet Explorer (XP SP2), Opera (8.54) et même Konqueror (KDE 3.5 - Fedora 4 & Ubuntu 5.10).

Toutefois, il a été nécessaire de faire quelques sacrifices pour cette mouture. En effet, la feuille de style css ne pourra être validée depuis IE. La cause ? Un fichier htc qui permet d'étendre les fonctionnalités de IE et notamment lui ajouter la prise en compte de pseudo élément hover sur d'autres balises que le simple 'a'. Très intéressant, me direz-vous, mais le problème est que l'insertion d'un tel fichier requiert l'utilisation de la propriété behavior dans le CSS qui ne fait pas partie de la norme. En grugeant un peu, j'ai ajouté une feuille de style que seul IE pourra lire qui comporte cette seule et unique instruction, et c'est cette seule ligne empêchera la validation CSS avec ce navigateur.

Il existe plusieurs possibilités pour mettre en place un menu déroulant sur un site web :

  • recours au JavaScript : pratique, c'est une solution assez rapide à mettre en place dès lors que l'on possède le script qui fonctionne bien. Le problème de cette technique est que Javascript n'est pas activé chez tous les internautes (il m'arrive moi même de le désactiver de temps à autre) et que sur x-tnd la désactivation du Javascript et le positionnement absolu du fil de news sur la page d'accueil était du plus mauvais effet, le menu n'était plus intégralement accessible...
  • une technique en pur CSS basée sur les commentaires conditionnels. Cette technique est beaucoup plus lourde à mettre en place à et maintenir puisque deux fichiers CSS doivent être créés. De plus cette méthode ajoute pour la version IE des tableaux unicellulaires... C'est la sémantique qui en prend un coup ;-)
  • le recours à un fichier htc. Au risque de ne pas avoir une feuille de style 100% valide depuis Internet Explorer, c'est (après avoir testé les deux méthodes suscitées) ce sur quoi mon choix s'est porté.

Dans tous les cas, il reste fort souvent problématique de réaliser des sites webs compatibles avec IE, même si les difficultés s'amenuisent au fur et à mesure que votre expérience grandit ; je citerai à ce propos un passage en marge de l'excellent livre de Eric A. Meyer CSS par Eric Meyer (More Eric Meyer on CSS) : Vous vous demandez sûrement pourquoi le code fait référence au div de navigation par div#nav au lieu de #nav seulement. Cela évite un bogue dans IE/Win.[...]J'ignore pourquoi l'ajout du nom résoud le problème, mais ça marche.. Il restera toujours malheureusement des comportements de ce navigateurs inexplicables...