2010-06-16 4 views
4

Comment puis-je obtenir une largeur div quand le div est dans une autre div avec "overflow: hidden;" ?Jquery, obtenir la largeur div en cas de débordement: masqué;

J'ai essayé de définir le débordement comme auto et après avoir utilisé $ ("# divselector"). Width() mais j'ai toujours la largeur div divisée!

Ex:

html:

<div id="content"> 
      <div id="item">content content content ...</div> 
</div> 

css:

#content 
{    
    width: 760px; 
    height: 100%; 
    overflow: hidden; 
    display: block; 
    position: relative; 
    cursor: move; 
} 

Détail: en utilisant le travail IE 6, mais dans IE 8 ne ...

+0

Voulez-vous dire que #item est #content débordante, et que vous voulez la largeur débordés? – Skilldrick

+0

Oui. Mais quand je mets $ ("# item"). Width(), retourne la valeur de la div div, mais le div enfant est débordé. – Fabio

Répondre

7

Par défaut, div s'étendra à la largeur de leur parent.

Si vous faites flotter vos éléments dans la div, l'élément ne s'étendra plus à la largeur du parent.

Ajouter ce qui suit à vos styles:

#item { float: left; } 

Voyez comment cela fonctionne: http://jsbin.com/umabe/edit

+1

+1 - Cela fonctionne. Comme le fait de donner 'position: absolute' ou' display: inline-block' (pour les navigateurs supportés). Le 'div' s'élargira au-delà de la taille du parent, et donnera la valeur correcte. – user113716

+0

Dans les navigateurs non pris en charge, position: absolute provoque l'apparition de #content dans une position inattendue et renvoie la valeur correcte. display: inline-block provoque l'affichage de #content mais la valeur est incorrecte. Dans les navigateurs pris en charge, vous éviterez les problèmes souvent associés aux flottants. – Mervyn

+0

'display: inline-block' est bien supporté et résout ce problème. Je préfère ne pas utiliser de flotteurs lors de la récupération des dimensions dynamiques est un aspect important du projet. – Gavin

Questions connexes