2013-05-17 29 views
0

我必须根据客户端上的模式(纵向或横向)调整图像大小。jQuery高度看起来不对

但是,jQuery的高度给我看起来不对。 的图像是具有最大高度和溢出的包装DIV中:隐藏,但仍是报告的身高好像它是高度:汽车

这是我的HTML(例如)

<div class="fix"> 
    <div class="content"> 
     <img src=""> 
    </div> 
</div> 
<div class="max"> 
    <div class="content"> 
     <img src=""> 
    </div> 
</div> 

CSS的

div{ 
    border: 1px solid black; 
    position:relative; 
    -webkit-box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    box-sizing: border-box; 
    overflow:hidden; 
} 
.fix{ 
    height:200px; 
    border: 1px solid red; 
    overflow:hidden; 
} 
.max{ 
    max-height:200px; 
    border: 1px solid blue; 
    overflow:hidden; 
} 

和JS代码

$('.content').each(function(){ 
    alert($(this).height()); 
}); 

这里是我的小提琴:

http://jsfiddle.net/MLa9Z/

+4

有目的地击败jsfiddle检查是违反规则的。如果消息告诉您添加代码,请添加一些** real **代码。有一个原因为什么有这样的检查。你的问题应该独立,无需外部资源。 – Antony

+0

您只能在图像加载后获取图像尺寸 - > [** fiddle **](http://jsfiddle.net/MLa9Z/4/) – adeneo

+0

对不起,我不知道。我在段落中添加了整个代码,所以它们仍然可读 –

回答

1

正如其他有说,你正在检查的divs报告正确的高度。他们的父母是您设置限制的人。

想象一下overflow: hidden就像一个窗口而不是绘画程序。如果你看着窗外,看到一部分树,树的其余部分不是“裁剪”或不存在......你只是看不到它。树仍然[插入数字]脚高。现在

,如果你坚持的maxfix类到content的div INSTEAD-OF/AS-精心为它们的容器,那么你的代码将报告您认为应当报告的大小。

1

股利你给一个固定的高度有200像素,但一个(与类的内容)犯规里面的股利。本质上你是隐藏任何溢出内容,但内容的大小保持不变。

尝试检查您的元素并使用指标(镶边)或布局(萤火虫)选项卡查看真实高度。

如果要调整,你必须直接应用该样式的形象,而不是父元素的形象,否则,你将裁剪图像,而不是(使用溢出:隐藏)

.fix img{ 
    height:200px; 
} 
+0

我知道我会裁剪图像,这是打算。我没有在这里发布完整的代码,但只是其中的一部分,使问题更清楚,似乎没有奏效。 –

+0

代码不是你的问题,那么它的实际问题是“我必须根据客户端的模式(纵向或横向)调整图像大小。”那么,你想调整图像大小还是裁剪它们?你已经成功地裁剪了它们,所以我认为你想调整它们。 – cernunnos