49 votes

IE8 display inline-block ne fonctionne pas

Dire que j'ai le code suivant

<style type="text/css" media="all">
  span, ul, ul li {
    display: inline-block;
    vertical-align: top;
    margin: 0;
    padding: 0;
    list-style: none;
  }   
</style>
<span>i would want</span>
<ul>
  <li>this</li>
  <li>on</li>
  <li>one line.</li>
</ul>

Je veux que ce display inline dans IE8. Partout j'ai tout lu dit que cela devrait fonctionner, IE8 prend en charge inline-block. Cependant, après une matinée à essayer je ne peux pas obtenir au-dessus de la ligne. Je sais que je pourrais flotter, mais avec les autres éléments sur ma page (non montré ici) j'aurais besoin de recourir à une "clearfix" qui est le plus marquer. J'ai seulement besoin de cible IE8 et aimerais savoir pourquoi inline block ne marche pas pour moi quand, apparemment, de sa prise en charge. Le code ci-dessus est ce que je veux lors de l'affichage dans Google Chrome.

50voto

Patrickdev Points 1579

Je suppose que vous n'avez pas déclaré de doctype. Essayez de placer ceci sur la première ligne, avant la balise html:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

Le code que vous avez collé fonctionne dans IE8 avec ce doctype.

37voto

cato_minor Points 363

Toutes les versions d'IE8 ne semblent pas fonctionner de la même manière. J'ai trouvé que le code donné, même avec un DOCTYPE, ne fonctionne pas dans IE 8.0.6001.18702, qui est une version antérieure.

Toutefois, la solution de contournement pour les versions inférieures d’IE a également fonctionné sur cet IE 8:

 <!--[if lt IE 8]>
<style type="text/css">
    li { display: inline; }
</style>   
<![endif]-->
 

18voto

mentat Points 1061

Vous pouvez définir la marge droite: 1px

travaillé pour moi assez bien.

13voto

Idra Points 720

Dans mon expérience, il est toujours préférable d'utiliser le moyen universel (IE6+) de déclarer un inline block. Même si vous visez les navigateurs les plus récents à chaque fois que j'ai essayé de dire que c'est uniquement pris en charge par les navigateurs les plus récents parmi ses clients, toujours mess avec leur type de document, puis les ventes de dire, il doit être corrigé, car les clients peuvent encore le voir et ne l'obtient pas, que c'est à leurs paramètres d'internet explorer et pas de notre faute. De plus lorsque vous utilisez inline-blocks pour la structure, il maintient le site de désintégration, si l'utilisateur consulte le site sur une ancienne c'est à dire pour n'importe quelle raison.

display: inline-block;
*zoom: 1;
*display: inline;

9voto

John Anastasio Points 79

IE8 le traitera comme un élément de niveau bloc sauf si vous utilisez float.

 .divInlineBlock
{
   display: inline-block;
   float: left;
}   
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X