1

Hello,

Je me retrouve à nouveau dans le merveilleux monde des CSS et des incompatibilités avec Internet Explorer. Mon objectif était d'afficher une liste d'éléments en utilisant des balises <ul>/<li>, et de placer des boutons à droite de chaque élément. J'ai donc ce code et le style CSS associé :
Source xHTML et CSS
<ul> <li> <a href="#">Button 3</a> <a href="#">Button 2</a> <a href="#">Button 1</a> <p>Caption</p> </li> </ul> ul { display : block; padding : 0px; margin : 0px 0px 8px 0px; list-style : none; } ul li { padding : 0px; margin : 0px; border : 1px solid #C0D3E7; font : normal normal normal 10px verdana; } ul li a { display : block; float : right; padding : 1px 4px; margin : 2px 2px 2px 0px; background : #DFE8EF; border : 1px solid #C0D3E7; color : #666699; } ul li p { padding : 2px 4px; margin : 2px; }

Le rendu est correct sous Firefox, mais Internet Explorer 7 m'affiche le <p> sur une ligne en-dessous des trois liens pour une raison qui m'échappe. Ce qui m'échappe encore plus, c'est qu'en faisant exactement la même chose avec une <div> au lieu des <ul><li>, ça fonctionne très bien sous Internet Explorer. Voilà une illustration de ce que ça donne, en 1er la solution avec <div>, puis en deuxième celle avec <ul><li> :

- Rendu sous Firefox
- Rendu sous IE7
- Page illustrant les deux solutions

Autre chose, si je spécifie une taille pour l'élément <li> (par exemple 100%, ou 300px, peu importe) le rendu devient *presque* correct sous IE. J'ai juste une marge inférieure légèrement trop importante à l'intérieur de l'élément.

Vous êtes déjà tombé sur ce cas-là ? Pendant un moment j'avais espoir de finir par connaître les explications de tous ces comportements étranges, mais au fur et à mesure ça me semble de moins en moins réaliste comme objectif grin

Merci smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

Ah alors perso, j'ai de très gros problèmes avec les retours chariots dans mon code sous IE et je ne sais pas à quoi c'est dû... est-ce que tu as essayé de mettre tout ce qu'il y a entre <li> sur la même ligne, balises <li> et </li> comprises ?
avatar

3

Bonne suggestion, et effectivement ça modifie le rendu (je vois pas trop pourquoi, vu que la hauteur de ligne dans le <li> est définie), mais il reste quand même incorrect. C'est pas plus mal que ce ne soit pas la solution d'ailleurs, parceque c'est du code généré donc pas évident de forcer tout à être sur la même ligne :/

Je viens de vérifier à l'aide de NetRenderer, Internet Explorer 8 ne semble pas avoir de bug.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)