Hi! Do you remember blogs? Well, this used to be one. Now it just serves as an archive for my multiple Twitter accounts.

6 January 2004

Au fait, j’avais complètement oublié. En réponse à mon article de retour sur les standards, TotalementCrétin (oui, c’est lui qui a choisi son nom) écrit :

dommage que il n’ait lu que ce qui l’interessait de stopdesign, qui se plaignait surtout de IE… et oui, c’est pas la faute du w3c si microsoft a pas jugé bon d’implementer min/max-width…

Sur le moment, j’ai eu la flemme de répondre que ce n’était pas cette partie qui m’intéressait dans ce que je citais, et que j’aurais probablement dû supprimer le paragraphe concerné pour être plus clair.

Mais je viens de me souvenir de pourquoi il a tort : non, c’est bien la faute du W3C. (Eh oui, encore.) A un moment, ils ont décidé de créer les propriétés min-width et max-width (et leurs équivalents avec height). Ca paraît une très bonne idée, particulièrement pour fixer la taille d’un bloc de texte. Mais c’est dans l’implémentation que ça devient n’importe quoi.

Je vous explique mon raisonnement, en tant que webdesigner, quand je découvre l’existence de ces nouvelles propriétés : comment faire pour que ça marche aussi bien dans les anciens browsers que dans les nouveaux ? Je vais mettre un min-width pour que mon bloc de texte ne soit pas réduit à dix pixels dans une petite fenêtre, et un max-width pour que les lignes ne fassent pas trois kilomètres sur grand écran. Cool, mes textes sont mis en forme parfaitement quelle que soit la taille de la fenêtre. Maintenant, pour IE, je fais comment ? Logiquement, si je rajoute une propriété width, Mozilla devrait l’ignorer, puisqu’il a déjà un min et un max ? Il devrait se douter que, si je fixe la largeur en dur, ce n’est pas pour lui ?

Ben non. Parce que, sur ce coup-là (et pas que sur ce coup-là), le W3C, il s’en foutait, de la compatibilité ascendante. Ceux qui veulent utiliser min et max, ils devront inciter leurs visiteurs à changer de browser. Est-ce que ça peut être utile, de spécifier à la fois min-width, max-width et width ? Pratiquement pas (ça ne pourrait l’être que si l’une des valeurs est fixée en em et que l’autre veut limiter les dimensions du bloc indépendamment de la taille du texte — mais en pratique, je ne suis même pas sûr que le browser prendrait en compte ce cas de figure). Est-ce que ça pourrait être utile, d’ignorer width quand on sait gérer min-width ou max-width ? Oui, ça serait très utile, pour assurer la lisibilité des pages sur les anciens browsers. Et ça coûterait quoi ? Rien.

Mais non, ça ne marche pas, parce que les préoccupations des responsables du W3C sont à mille lieues de celles des développeurs.

Maintenant, revenons à mon argument sur les tables : si elles ne sont pas utilisables pour un contenu variable, ce n’est pas parce qu’IE ne gère pas max-width. C’est parce que, si je mets mon layout dans un div avec une largeur, disons, de 30em (trente fois la largeur de la lettre m dans la police du texte), et que je mets, dans un post ou dans le photolog, une image plus large (ce qui est impossible à déterminer a priori, puisque la limite dépend de la taille du texte chez le lecteur), mon layout est tout cassé : l’image déborde ou est coupée.

Avec une table, non.

Voilà pourquoi je continuerai toujours à utiliser les tables dans tous les cas où la largeur de mon contenu n’est pas fixée dans le marbre.

Quant à la validation… le jour où on pourra valider un blog sans avoir à passer les URL qu’on cite dans une moulinette pour convertir les & en &, on en reparlera. Je ne sais pas qui est responsable de la bêtise d’utiliser le caractère & à la fois comme séparateur de variables et comme indicateur d’un caractère spécial, mais je leur laisse le soin de trouver une solution plus viable. Ou pas — ça ne me gêne pas, de ne pas être valide.

Archives

2001 01 02 03 04 05 06 07 08 09 10 11 12

2002 01 02 03 04 05 06 07 08 09 10 11 12

2003 01 02 03 04 05 06 07 08 09 10 11 12

2004 01 02 03 04 05 06 07 08 09 10 11 12

2005 01 02 03 04 05 06 07 08 09 10 11 12

2006 01 02 03 04 05 06 07 08 09 10 11 12

2007 01 02 03 04 05 06 07 08 09 10 11 12

2008 01 02 03 04 05 06 07 08 09 10 11 12

2009 01 02 03 04 05 06 07 08 09 10 11 12

2010 01 02 03 04 05 06 07 08 09 10 11 12

2011 01 02 03 04 05 06 07 08 09 10 11 12

2012 01 02 03 04 05 06 07 08 09 10 11 12

2013 01 02 03 04 05 06 07 08 09 10 11 12

2014 01 02 03 04 05 06 07 08 09 10 11 12

2015 01 02 03 04 05 06 07 08 09 10 11 12

2016 01 02 03 04 05 06 07 08 09 10 11 12

2017 01 02 03 04 05 06 07 08 09 10 11 12

2018 01 02 03 04 05 06 07 08 09 10 11 12