2009-08-20 7 views
3

Je suis en train de faire ma div être la largeur de mon contenu, je peux le faire fonctionner dans tous les autres navigateurs, sauf pour IE, en utilisant:CSS div largeur - largeur du contenu seulement ..?

div#quoteHolder { 
    height: 85px; 
    display: inline-block; 
} 

Est-ce que quelqu'un sait comment résoudre ce problème dans IE ?

Oh ce qui est le code html ..

<div id="quoteContainer"> 
    <div id="quoteHolder"> 
    <h2>"If you were lucky and lived in Port Melbourne, it might even be your local"</h2> 
    <h3>The Age, Epicure. JUNE 22nd 2004</h3> 
    </div> 
</div> 
+0

[Une autre solution] [1] [1]: http://stackoverflow.com/questions/ 1304037/css-div-largeur-contenu-largeur-seulement – Jeffrey

Répondre

8

IE prend en charge le blocage en ligne, mais uniquement pour les éléments qui sont nativement en ligne. Donc, si vous voulez vraiment utiliser inline-block, vous êtes limité aux spans et strongs et ems, quand une liste ou un paragraphe aurait peut-être plus de sens sémantique (et dégrade aussi plus gentiment pour les utilisateurs non CSS.)

Cependant, si vous déclenchez hasLayout (définissez hasLayout = true dans cet élément) sur un élément de bloc, puis le définissez pour afficher: inline, il devient magiquement un bloc inline dans IE! En utilisant le hack de propriétés (que j'aime si bien), vous pouvez cacher l'affichage: inline de tous les navigateurs non IE sans effort.

est ici le code, dans sa brève loveliness:

display:-moz-inline-stack; 
display:inline-block; 
zoom:1; 
*display:inline; 
+0

Magie! J'ai passé tellement de temps à chercher ça. Merci! –

3

IE a des problèmes avec beaucoup de display modes, voir ici: http://www.quirksmode.org/css/display.html. Un float: left pourrait être ce que vous cherchez, alternativement display: inline, mais alors le height ne fonctionnera pas.

+0

afficher en ligne va supprimer la hauteur de 85 px – rahul

+0

Woops, c'est vrai. Fixé. – deceze

+0

Merci pour ça, la hauteur 85px n'est pas nécessaire, c'était seulement là pour moi de voir ma div (avec une bordure), j'ai utilisé l'affichage: inline et ça marche parfaitement, merci! :) – SoulieBaby

1
div#quoteHolder { 
    height: 85px; 
    display: inline-block; 
    border: #a9a9a9 1px solid; 
    float: left; 
} 
Questions connexes