2010-09-25 6 views
0

Si je veux mettre width d'un div contenant un texte et je veux régler le width de cette div-0 dans IE6 (je n'ai pas vérifié dans IE7) ne marche pas!!!IE6: largeur ou la hauteur réglée sur 0px ne fonctionne pas lorsque le contenu à l'intérieur

S'il vous plaît vérifier le code HTML ci-dessous:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title></title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script> 
    <style> 
     #box { 
      width: 0px; 
      background-color: blue; 

     } 
    </style> 
    </head> 
    <body> 
    <div id="box"><span>hello</span></div> 
    <script> 
     $("#box").width(0); 
    </script> 
    </body> 
</html> 

La largeur de la div collée à la largeur minimale de la teneur div.

Cordialement,
Munim

+0

une approche plus facile serait de régler l'affichage: caché – TheGeekYouNeed

Répondre

0

Comme je l'ai souligné dans l'autre réponse, tout ce qui ne rentre pas dans la boîte dépassera la taille fixe, sauf si vous le cachez. Si vous ne pouvez pas utiliser overflow:hidden alors le positionnement est une autre façon de le faire:

<style> 
#box { 
    position: relative; 
    width: 0; } 
} 
#box span { 
    position: absolute; 
    left: -20px; 
} 
</style> 

<div id="box"><span>hello</span></div> 

Tout élément qui est positionné à l'aide position:absolute est retiré du flux de documents et n'affectera d'autres éléments, y compris la taille du récipient, que vous pouvez ensuite dimensionner aux dimensions dont vous avez besoin.

+0

Merci, mais ne peut pas définir la largeur à 0 –

1

Utilisez overflow:hidden si vous avez besoin du contenu à couper. Sans cela, la mise en page considère que la taille de la boîte est 0, mais le contenu qui ne correspond pas s'étend en dehors de son conteneur.

+0

Merci Andrew pour votre réponse, je J'aurais dû mentionner que j'ai un élément à l'intérieur où je place le 'left: - 20px' et si je le mets à' overflow: hidden' alors l'élément est caché. Pouvez-vous s'il vous plaît me donner une autre solution que celle-ci. Merci encore :) –

1

Si vous voulez que la largeur et la hauteur soient égales à 0, alors display:none est le moyen habituel pour le masquer complètement.

+0

Eh bien, je ne peux pas utiliser 'display: none' car il fait partie de' div' en utilisant 'left: -20px' –

1

La div réelle a une largeur de 0 (vous pouvez dire si vous mettez une bordure autour d'elle). Si vous avez besoin du texte à l'intérieur de la div à être caché, mais pas l'autre élément, je suggère d'ajouter les éléments essentiels suivants:

#box span { 
display: none; 
} 
Questions connexes