2012-05-04 57 views
0

這是很容易得到一個包含一些非格式化文本例如像寬度或股利或跨度的高度:獲取DIV或跨度的動態寬度高度格式化文本並

<div>Hello World</div> 

通過使用jQuery的寬度( )或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或空,如下圖所示:

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

任何想法上的解決方案,以獲得從jQuery的JS或動態寬度高度?

+4

font tags?當真?另外,您不能將[block elements](https://developer.mozilla.org/en/HTML/Block-level_elements)放入[內聯元素](https://developer.mozilla.org/zh-CN/HTML/ Inline_elements) – Joseph

+0

嘗試.outerWidth() –

+0

和那個textformat ...和kerning屬性!將谷歌它以後 – bondythegreat

回答

1

這是因爲HTML代碼已損壞。

在內聯元素(跨度)內不能有塊元素(p),所以瀏覽器會盡量糾正代碼。您嘗試使用的特定瀏覽器是通過將內嵌元素外部的塊元素移出,並將內聯元素留空。

+0

在HTML5中,理論上可以將塊元素放入內聯元素中,儘管規範很模糊......當「默認樣式可能導致混淆」時,它是不允許的。所以是的,在這種情況下它會被認爲是無效的,但是通用規則「你不能在塊內嵌入元素」不再是真實的,因爲你可以使用f.ex在'a'標籤內使用'h1'有效的HTML5標記。 – David

+0

@大衛是的,但這看起來很像HTML 3比HTML 5 ... – Guffa

+0

我想說HTML5比HTML4更類似於HTML3;) – David