2013-11-22 140 views
1

这是一个愚蠢的问题,但我似乎无法弄清楚。基本上我想要我的div元素的高度。但一些它如何保持返回0.当我检查Chrome中的元素时,它给了我一个高度。代码:无法获得div元素的高度

HTML

<div id="signup"> 
       <div class="panel"> 
       </div> 
</div> 

CSS:

.panel 
{ 
    width: 90%; 
    -webkit-border-radius: 10px; 
    -moz-border-radius: 10px; 
    -ms-border-radius: 10px; 
    -o-border-radius: 10px; 
    border-radius: 10px; 
    background: #0071bc; 
    padding: 1em; 
    border: 0.3em solid; 
    border-color: #073b73; 
    color: #ffffff; 
    position: relative; 
    left:0; 
    right: 0; 
    margin: auto; 

} 

JQuery的:

alert($("#signup .panel").outerHeight()); 
alert($("#signup .panel").height()); 

我在下面的方法使用上述线路:

$(document).ready(function(){ 
}); 

$(window).load(function(){ 
}); 

每次我试图提醒身高,我只是继续得到0.我注意到,在CSS中,如果指定高度,即height:361px;height:40%;我得到361或40.但我不想要这个。我的面板高度根据其中的元素进行更改。一旦渲染完成,我希望登录的高度。我现在试过...我不知道如何做到这一点。请帮忙。

+1

你是否包括jQuery的?它在[小提琴](http://jsfiddle.net/mathieujonson/Sryzk/)中工作。注意:'console.log()'比'alert()'好。它不那么讨厌。 –

回答

3

为什么高度返​​回为 “0”,没有数据:

这似乎是我的权利。 height()返回没有填充和边距的高度。

铬原因显示的高度是因为你有填充和边框:而且因为元素没有内容(数据)为什么它的工作原理与outerHeight高度返回0。

。这就是为什么你会得到outerheight()的价值。 OuterHeight()将返回填充和边框的高度。如果您使用outerHeight(true),您将获得元素的高度加上填充,边框和边距。

注:

如果你想要一个元素的高度包括填充而不是边界。您将使用innerHeight()。和innerHeight(true)如果你想填充和边缘高度没有边框高度。

Documentation

+0

是的。 outerHeight()将显示填充和边框的空div的高度) –

+0

虽然OP获得0高度不是OP吗?他说,他*没有得到0的唯一时间是当他明确设定div的高度时。 –

+0

当我在小提琴中运行他的代码时,我得到了“40”作为outerHeight的值。 http://jsfiddle.net/YZATJ/1/这是因为他已经定义了填充和边框。 –

0

的代码是作品,如本fiddle。如果代码不起作用,问题就在别处。确保jQuery已链接,并且控制台中没有错误。

小提琴HTML:

<div id="signup"> 
    <div class="panel"> 
    Tons of Content<br> 
    Even More Content 
    </div> 
</div> 

小提琴的jQuery:

$(document).ready(function(){ 
    console.log($("#signup .panel").height()); 
});