border-radius, extensions HTC et Internet Explorer 9

border-radius, extensions HTC et Internet Explorer 9 (le 28 mai 2011)

Les mythiques coins arrondis de CSS3 ont souvent créé des soucis aux intégrateurs, notamment à cause d'Internet Explorer 6, 7 et 8. En a résulté de nombreux hacks, détournement, techniques plus ou moins réussies via Javascript afin d'émuler ce comportement sur ces navigateurs.

Une technique consiste à indiquer avec les préfixes vendeurs la propriété border-radius et à la répéter sans lesdits préfixes, pour le jour où la propriété puisse fonctionner sans ces derniers (ce qui est le cas pour les dernières versions de Firefox par exemple), ce qui nous donne donc :

#madivronde{
-webkit-border-radius: 5px;
-o-border-radius: 5px;
-ms-border-radius: 5px;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px;
behavior:url(border-radius.htc);
}

La technique ci-dessus est une extension HTC, il suffisait de rajouter la dernière ligne dans l'exemple, et de mettre le fichier border-radius.htc dans le bon répertoire, et tout marchait bien sous IE.

J'ai bien dit "marchait". J'ai récemment dû reprendre un projet qui avait utilisé cette technique, et que ne fut ma surprise quand sous Internet Explorer 9, l'affichage était complètement cassé !

Après investigation, il apparait que ce dernier n'appréciait pas du tout behavior:url(border-radius.htc);. Si les trois premières lignes suffisent à faire nos coins arrondis sous IE9 et les autres navigateurs, évidemment, cela ne marche plus sous les versions inférieures à IE9.

La seule solution consiste donc à utiliser les commentaires conditionnels pour créer une autre CSS destinée à IE8 et inférieurs :

<!--[if lte IE 8]>
<link href="ie_8_fixes.css"
rel="stylesheet"
type="text/css" />
<![endif]-->

dans laquelle on mettra seulement :

#madivronde{
behavior:url(border-radius.htc);
}

Ainsi, tout fonctionnera correctement sous IE 6, 7, 8 et 9 (ouf), et sous les autres navigateurs également.

Permalien :

Flux RSS des commentaires de ce billet : https://www.nicolas-hoffmann.net/rss/commentaires.php?id_news=1391

2 commentaires

Posté par Dossin le 28/09/2011 à 20:03:39
Bonjour j'aurais besoin d'aide pour mon site...
j'arrive pas a faire fonctionné raduis sur ie9 et inférieur

pouvez vous regarder mes codes xml et css

afin de m'aider

adresse du site : www.microdos.fr

Ps c'est mon premier site je débute dans le css depuis 5 jours merci
Posté par Nico le 29/09/2011 à 9:47:01
Je vous invite à aller plutôt sur http://forum.alsacreations.com/forum.php où beaucoup de gens pourront vous aider, je n'ai malheureusement pas le temps de chercher (je suis au travail).

Cordialement,
Nicolas

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.