outline – une spec approximative

Honorable dĂ©fenseur de la propriĂ©tĂ© CSS outline (du moins jusque lĂ ), j’ai toujours pensĂ©/prĂ©tendu que celle-ci Ă©tait sous-estimĂ©e. Afin appuyer cette affirmation contestable, voici deux utilisations qui ne manquent pas d’imagination :

Brievement, la propriĂ©tĂ© outline a Ă©tĂ© Ă©tablie lors de la spĂ©cification CSS2 et n’a que très peu Ă©voluĂ© depuis. Le seul gros changement est amenĂ© par la propriĂ©tĂ© complĂ©mentaire outline-offset dans le niveau 3 de CSS (source : CSS3 UI). Je vous l’accorde, il n’y a rien de bien transcendant surtout quand on ne la voit mĂŞme pas apparaĂ®tre dans la notation raccourcie outline…

Nous pourrions dĂ©battre longuement sur le fonctionnement qui se veut très minimaliste (sans rĂ©elles explications) mais ce n’est pas le sujet.

Dans la pratique

Nous utilisons que très rarement cette propriĂ©tĂ©. A tort certainement. L’usage le plus courant et le plus sauvage/horrible/dĂ©sespĂ©rant reste : * { outline: none; }. Dans mon cas, j’ai pris l’initiative de profiter de cette propriĂ©tĂ© pour remplacer/simuler une bordure.

Pourquoi ?

  1. Une envie est une envie. Ne pas y céder ne serait que plus frustrant.
  2. Un graphiste a prend le droit de faire des bordures externes.
  3. L’intĂ©grateur râle mais n’a pas le choix parce qu’il le veut bien…
  4. Le support de box-shadow commence qu’Ă  partir de IE9 (source : caniuse.com)

A première vue, ça semble gĂ©nial. Mais ne nous y trompons pas, le web va rarement dans le mĂŞme sens (ça serait trop facile). Cette fois, c’est Opera qui ne semble/veut pas avoir la mĂŞme vision des choses : table des rendustable des rendus mobiles

Un grand nombre (des dĂ©veloppeurs pour la plupart) diront : “Opera bla bla bla, les stats sur nos serveurs bla bla bla”. Je ne suis pas de cet avis, Opera reprĂ©sente aujourd’hui 300 millions d’utilisateurs qui vont prochainement devoir faire avec Webkit mais qui restent des utilisateurs dont nous devons nous prĂ©occuper.

Et alors ?

Il y a peu de ressources qui relatent le sujet :

Le bug problème est connu et cela depuis la version 9.5 d’Opera. Difficile d’en dire plus (sans se tromper) car jusque lĂ  je n’ai pas trouvĂ© de billet/ticket rapportant le problème officiellement.

La première ressource est certainement la plus intéressante. Pour ne pas changer, la vérité vraie se trouve dans les documentations (CSS 2.1CSS3). Et voila de quoi nous laisser dubitatif :

The outline created with the outline properties is drawn “over” a box, i.e., the outline is always on top, and does not influence the position or size of the box, or of any other boxes.

This specification does not define how multiple overlapping outlines are drawn, or how outlines are drawn for boxes that are partially obscured behind other elements.

Since the outline does not affect formatting (i.e., no space is left for it in the box model), it may well overlap other elements on the page.

Difficile alors de parler de BUG après ces trois extraits. Chacun est libre d’y voir ce que bon lui semble.

Cependant, il est peut ĂŞtre exagĂ©rer de garder un tel contre pied Ă  travers 11 versions de navigateur et 9 versions de moteur (source : WikipĂ©dia). Malheureusement, ce ne sera pas la dernière fois que ce genre de choses se passe surtout quand tout le monde Ă  les yeux tournĂ©s vers les nouveautĂ©s CSS3.

Mais après tout, pourquoi OpĂ©ra n’aurait-il pas raison sur son implĂ©mentation de la propriĂ©tĂ© outline ?

Faisons attention, une prochaine version de WebKit pourrait avoir droit à cette interprétation.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *