2010-05-01 2 views
23

Это, вероятно, очень просто для большинства из вас. Но мне нужен небольшой фрагмент, который просматривает текущую высоту div (у div есть динамическая высота, основанная на содержимом внутри него) , а затем установите это значение в min-height класса css.jQuery - Установить минимальную высоту div

В основном, это означает, что я хочу, чтобы этот контейнер имел минимальную высоту, чтобы быть тем же самым значением, что и текущая высота. Это, вероятно, быстро один :)

ответ

6

только доказательство концепции!

 // 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 
      } 
}); 

Это должно работать должным образом!

69

Если я вас правильно понимаю, вы можете сделать следующее:

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

Да это работает :) Причина, почему я спрашиваю, потому что у меня есть DIV, без высоты, указанной опорожняется, прежде чем он населен другим контентом. Преобразование целого контейнера в зависимости от того, что в нем находится. В этом небольшом промежутке между содержимым и контентом div сжимается до минимальной высоты, а затем увеличивается до необходимого размера. Недостатком здесь является то, что div не уменьшается динамически, а только вверх. Вы знаете хороший способ обойти это? –

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