2011-12-09 77 views
0

我有以下几点:跨度结束语一个跨度

<span id="span_1" style="overflow: auto;"> 
<span id="span_2" style="font-size: 200px; background-color: red;">Testing</span> 
</span> 

当我试图让使用jQuery包装跨度span_1的高度 - 它给了我19px。尽管内部跨度span_2的字体大小为200px,并且它在萤火虫上的计算高度为225px。

为什么包裹跨度没有完全缠绕内部跨度?

我基本上试图找到精确剩余高度的一个特定元素。这个元素可以有很多孩子,但我想知道它剩下多少高度。所以这个想法是将所有元素都包含在一个范围内,并使用jQuery计算高度,但到目前为止,我不明白为什么上述不起作用。

更好的主意?我无法将内容包裹在内容中,因为它会受到行高的影响。

+1

行内元素实际上是否有可计算的高度? – JohnP

+0

是的,请参阅示例:http://jsfiddle.net/jmEv9/ – Abs

回答

2

尝试将display: inline-block;添加到父跨度。

+0

这与包装跨度在div中的问题相同。顶部和底部有额外的空间。我认为t也会受到行高的影响。 – Abs

+0

我不知道你是如何使用line-heigh,但你可以期望任何其他解决方案也会受到line-height的影响。你为什么不把背景放在父跨度中?或者将“display:inline-block;”也添加到子跨度中? – scumah

0

尝试添加

显示:块; 位置:相对;

您的内在和外面也是。跨度是内联元素,默认情况下它没有宽度或高度。

2

尝试$("#span1").outerHeight();

+0

这看起来像它可以工作!需要测试更多! – Abs

+0

这不会工作,它会返回与萤火虫的计算高度一样。 – scumah

+0

'$(“#span_2”)。outerHeight();'很好。 –