0

获取包含一些非格式化文本的 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 获取动态宽度高度的解决方案有什么想法吗?

4

2 回答 2

1

那是因为 HTML 代码被破坏了。

内联元素 (span) 中不能有块元素 (p),因此浏览器会尽力更正代码。您尝试此操作的特定浏览器通过将块元素移到内联元素之外,将内联元素留空。

于 2012-05-04T11:18:58.980 回答
0

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

于 2012-05-04T11:22:23.327 回答