使用带格式的文本获取DIV或Span的动态宽度高度

时间:2012-05-04 11:13:42

标签: javascript jquery html5

很容易获得包含一些非格式化文本的Div或Span的宽度或高度,例如:

<div>Hello World</div> 

使用JQuery的width()或height()方法。这似乎不适用于格式化的文本元素,如下例所示:

<span id="caption" class="caption" style="left: 406px; top: 357.5px;">
<textformat leading="2">
    <p align="LEFT">
        <font face="Verdana" color="#FFFFFF" size="4" kerning="0" letterspacing="0">
            <b>TYPE</b><b><i>iorad</i></b>and<b>PRESS ENTER</b>
        </font>
    </p>
</textformat>
</span>

此示例包含一些格式化的文本元素,这些元素在我们呈现html页面时显示良好。但是当我们尝试获取动态宽度或高度时,它返回0或null,如下所示:

$(".caption").width() returns 0

关于从jquery或js获取动态宽度高度的解决方案的任何想法?

2 个答案:

答案 0 :(得分:1)

那是因为HTML代码坏了。

您不能在内联元素(span)中包含块元素(p),因此浏览器会尽力纠正代码。您尝试使用的特定浏览器通过将块元素移动到内联元素之外,将内联元素留空。

答案 1 :(得分:0)

它的工作。在这里查看演示http://jsfiddle.net/Simplybj/ZkEyR/1/