Spring is hate...

IE contre le Poney Rose

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.

19 Mars 2009 - 20:39, par Ploum

On dirait que IE considère que la place est déjà prise par l'image de gauche, comme si elle était "multipages" (moultipass ?)

19 Mars 2009 - 23:36, par Rik

En gros, tu demandes pourquoi les navigateurs ont des bugs ? Je ne suis pas un grand fan de IE, mais ça arrive, comme partout. Relax, tu commences à comprendre que le métier de développeur front-end n'est pas aussi simple qu'on peut le penser.

Pour ton salut, sache que seul IE7 a ce comportement, IE6 et IE8 fonctionnent très bien sur les machines que j'ai pu tester. Il s'avère qu'ils ont retravaillé beaucoup l'impression au moment de la sortie d'IE7 et quelques bugs ont pu s'y glisser. C'est malheureux mais c'est comme ça. Ce n'est pas aussi grave que le non respect volontaire des standards. Là c'est juste une boulette que tout soft peut avoir.

Pour la question des outils, IE8 incorpore des outils beaucoup plus intéressants qu'auparavant. Je n'ai pas encore la (malheureuse) occasion de les tester mais ça a vraiment l'air plus sympa qu'avant.

20 Mars 2009 - 02:14, par Christophe

Rik> Tu sembles ignorer les lois intergalactiques qui empêchent de dire toute chose positive sur MSIE, spécialement si c'est pour commenter un de ses (nombreux) bugs.

Parce qu'un mec qui me pisse dessus, m'insulte et m'injurie, et me cogne au visage, s'il postillonne, je ne dirai pas "ah c'est pas grave, plein de gens postillonnent". Non. Je lui dirai plutôt :

FUCK YOU IE.

20 Mars 2009 - 09:04, par No'

Rik: les captures d'écran que je produis sont IE6 - je suis sous Ubuntu et j'utilise ies4linux. Donc, que IE6 (jamais réussi à lancer IE7 avec ça)

ce qui me chagrine surtout, c'est pas tellement l'interprétation toute microsoftienne d'un standard... c'est le "mêmes causes, pas mêmes effets" qui me fait hurler. Parce que c'est incompréhensible. Et qu'on doit passer par de très vilains hacks - comme rajouter une classe CSS qui va artificiellement rajouter une marge négative sur un élément qui ne le nécessite que pour ce navigateur.

C'est inutilement nécessaire.

20 Mars 2009 - 09:14, par Prax

une feuille de style screen et une feuille de style print c'est effectivement la solution que me souffle mes collègues

20 Mars 2009 - 09:20, par No'

Prax: tes collègues ne m'aident pas, en donnant une solution à un autre problème. Une feuille "print" affectant une marge négative à mes images rendra "bien" sous IE, mais du coup, sous Firefox, les images seront décalées violemment à gauche d'autant de pixels. Ce qui fait que sous FF, la première image sera jolie, et toutes les autres seront décalées à gauche.

La solution que tes collègues pourraient souffler, c'est une feuille spécifique à IE.

20 Mars 2009 - 09:31, par Prax

des feuilles screnen/print par navigateur m'avait effectivement soufflé mes collègues (une pour les navigateurs des malvoyants, une pour FF, une pour IE, ...). As-tu pensé aux milliards d'utilisateurs non voyants qui vont tenter de lire la page des poneys et pleurer de ne pouvoir ?

Autrement, il y a un blog reposant pour toi
http://beerpump.blogspot.com/

21 Mars 2009 - 11:49, par Pete

Euuuhhh??! Y sont pas roses les poneys, y sont blancs...


Toutes les balises HTML seront supprimées.
Tu peux ajouter des liens comme suit :
J'ajoute [a http://exemple.com "un joli lien"]
Tu peux aussi mettre *en gras* ou {en italique}.