2010-05-01 6 views
23

Ceci est probablement très facile pour la plupart d'entre vous. Mais j'ai besoin d'un petit fragment qui cherche la hauteur actuelle d'un div (le div a une hauteur dynamique basée sur le contenu qu'il contient) , puis définissez cette valeur dans la valeur min-height de la classe css.jQuery - Réglez min-height de div

Fondamentalement, ce que cela signifie est que je veux ce récipient pour avoir son min-height être exactement la même valeur que sa hauteur actuelle. Ceci est probablement un rapide :)

Répondre

6

juste une preuve de concept!

 // attend for dom ready 
    $(function() { 
     // hide .foo before we get it's height 
     $('.foo').hide(); 
     // get the height, also the one mentioned below is a good one! 
     var foo_height = $('.foo').height(); 
     // see if the actual height respect our needs! esample 180px 
     if (foo_height > 180) { 
      // set the height and show it! 
      //$('.foo').css('height', foo_height + 'px').show(); OR try 
      $('.foo').height(foo_height).show(); 
     } else { 
      //do something else here 
      } 
}); 

cela devrait fonctionner comme prévu!

69

Si je comprends bien, vous pouvez effectuer les opérations suivantes:

$(".foo").css("min-height", function(){ 
    return $(this).height(); 
}); 
+0

Oui cela fonctionne :) La raison pour laquelle je demande est parce que j'ai un div sans hauteur spécifiée est vidée avant qu'il ne soit peuplé par d'autres contenus. Rendre le conteneur entier dynamique en taille en fonction de ce qu'il y a dedans. Dans ce petit écart entre le contenu et le contenu, le div rétrécit à sa hauteur minimale avant de grandir à sa taille requise. L'inconvénient ici est que la div ne descend pas en taille dynamiquement, seulement vers le haut. Connaissez-vous un bon moyen de contourner cela? –

1
var elt = document.getElementById("<%= this.your_element_id.ClientID %>"); 
elt.style.minHeight = elt.clientHeight + 'px';