IE contre le Poney Rose

Jeu 19 mars 2009

Des fois, je hais mon boulot et les absurdités qu'il me faut surmonter pour résoudre un problème... Autant je peux comprendre qu'un langage de programmation a ses contraintes, ses limites, même, autant je n'arrive pas à entraver que deux mêmes causes provoquent des effets différents.

Internet Explorer (quelle que soit la version que tu peux imaginer utiliser) fait partie de ces logiciels au comportement imprévisible, illogique, et il faut bien le dire, capable de venir à bout des quelques neurones (au masculin) restant au bout d'une journée d'effort pour que la baballe passe entre les poteaux.

J'ai passé récemment plus de deux heures à lutter de toutes mes forces contre une virgule récalcitrante en Javascript. Bon, il paraît que c'est un bug "connu" de Javascript. Sauf que je le connaissais pas. "nul n'est censé ignorer qu'il ne faut jamais laisser une virgule à la fin des arguments d'une fonction". Ah. Bon. Je le saurai la prochaine fois.

En revanche, il y a un truc absolument inimaginable qui m'a empoisonné l'existence, et qui montre à quel point le comportement d'Internet Explorer montre des signes alarmants de sadisme et ce qui a déclenché l'écriture de cet article, prêt à dénoncer le traitement humiliant et dégradant qu'induit une séance de débogage ; tant parce que IE affiche n'importe quoi sans raison apparente, et qu'en plus il n'existe pas d'outil vraiment efficace pour découvrir le pourquoi du comment et une éventuelle parade à cette imbécilité.

Je te propose tout d'abord d'aller voir cette page web.

Tu peux éventuellement observer le code HTML de cette page. Rien d'exceptionnel. Trois blocs de texte encadrés par des divs, et trois images, alignées à gauche grâce à la merveilleuse propriété CSS "float: left;". À l'écran, que du bonheur. Sur Firefox et sur Internet Explorer. Si si ! à l'écran, c'est exactement ce que je veux.

Rendu web
Voir en plus grand

La petite subtilité vient du petit "div" qui n'a pour autre fonction que d'ajouter un saut de page entre les unités. Ce saut de page ne se voit évidemment pas à l'écran, en revanche, ce saut de page se voit parfaitement à l'impression. Je recommande bien entendu de ne pas imprimer cette page (remplie de "loremipsumeries"), ne serait-ce que pour sauver la planète de la déforestation. On peut tout à fait constater les sauts de page et tout le reste avec la fonction "aperçu avant impression".

Sous Firefox, rien à signaler. J'ai bien mes trois pages, et mes poneys roses sagement calés à gauche.

Mais sous IE :

Aperçu avant impression
Voir en plus grand

POURQUOI POURQUOI POURQUOI ??????

Pourquoi cet abruti congénital ajoute une marge sur mon image A LA DEUXIÈME PAGE UNIQUEMENT ??? Pourquoi une marge ???? QUI EST-CE QUI LUI A DEMANDÉ DE METTRE UNE MARGE ???
Sachant qu'en sus, entre le premier bloc de texte et le suivant, IL N'Y A AUCUNE DIFFÉRENCE DE MARQUAGE ???

Mais pourquoi ?... oui... pourquoi ?... pourquoi seulement à l'impression ? pourquoi le comportement n'est pas identique à l'écran et sur le papier ? pourquoi y a-t-il une différence ?

Pourquoi IE ?.... (bon, ça, je sais, c'est parce que souvent, le client n'a pas autre chose et n'en démords pas ; on n'y peut pas grand chose).

Y'a des fois, même un antidépresseur puissant ne vient pas à bout de l'immense sensation de désespoir qui me noie.