2010-05-01 12 views
23

Dies ist wahrscheinlich sehr einfach für die meisten von Ihnen. Aber ich brauche ein kleines Snippet, das die aktuelle Höhe eines div nachschlägt (das div hat eine dynamische Höhe, basierend auf dem Inhalt darin) und dann diesen Wert in den min-height Wert der CSS-Klasse einstellen.jQuery - Stellen Sie min-height von div ein

Grundsätzlich bedeutet dies, dass ich möchte, dass dieser Container seine minimale Höhe hat, um genau den gleichen Wert wie seine aktuelle Höhe zu haben. Dies ist wahrscheinlich eine schnelle one :)

Antwort

6

nur ein Proof of 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 
      } 
}); 

sollte dies wie erwartet funktionieren!

69

Wenn ich Sie richtig verstehe, können Sie folgendes tun:

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

Ja, das funktioniert :) Der Grund Ich frage, weil ich ein div ohne Höhe haben angegeben geleert wird, bevor es von einem anderen Inhalt bevölkert wird. Den gesamten Container basierend auf dem, was darin enthalten ist, dynamisieren. In dieser kleinen Lücke zwischen keinem Inhalt und Inhalt schrumpft das div auf seine minimale Höhe, bevor es auf seine benötigte Größe wächst. Der Nachteil ist, dass das div nicht dynamisch nach unten geht, sondern nur nach oben. Weißt du, dass es eine gute Möglichkeit ist, dies zu umgehen? –

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