2012-12-12 45 views
2

我需要知道 的寬度(以像素爲單位),以及它是否取決於字體大小。此外,這是不同的頁面中的不同元素?範圍內 的寬度範圍和iframe主體

另外,是 不同於一般的

+1

像素沒有寬度。這取決於正在呈現的字體和字體大小(可以由用戶更改,您知道)。 – Oded

+0

可能重複[有多少個px佔用單個 ?](http://stackoverflow.com/questions/7925339/how-many-px-occupy-the-single-nbsp) – JJJ

回答

1

雖然Maccath的答案是遵循正確的建議,直接回答你的問題:通過使用一些JavaScript是的,你其實可以get the width quite simply

例如,給定:

<span id="nbsp">&nbsp;</span> 

寬度可使用jQuery檢索:

$('#nbsp').width() 

jQuery的返回,因爲它是呈現的<span>的寬度,所以它佔字體大小等。現在你知道如何去做,不要。

+0

這不是完全可靠的,請參閱我的示例:http://jsfiddle.net/HNxnY/ – BiAiB

+0

我的示例中沒有看到任何問題。請注意,' '不能拉伸,它只是拉伸之前的空格。看到這個例子:http://jsfiddle.net/sveinatle/HNxnY/5/我在所有的跨度周圍放置了一個邊框,以便可視化每個' '的實際大小,並且它們與報告的值一致。最後一個跨度只包含一個普通空間(並且沒有周圍空間以避免摺疊),因此會拉伸,這也會反映在上次報告的值中。我的桌面上的 – Supr

+0

,這三個值是不同的(正常空間爲51,99和78)。我很難看到這可以被認爲是可靠的。我的觀點是,沒有可靠的方法來判斷網頁空間的大小。理由是證明它的一種方式,但我幾乎可以肯定它們是其他方法(例如,)。 – BiAiB

3

在正常空間上&nbsp;(非間斷空格)的用途是爲了防止單詞之間出現換行符。您可以使用多個&nbsp;實體將多個空格放在一起。如果您只是在不使用&nbsp;實體的情況下添加空間,則它們將被縮減爲只有一個空間。

如果您使用多個&nbsp;來填充內容,如同一些初學HTML用戶所做的那樣,那麼這被認爲是不正確的。您應該始終使用CSS邊距和填充填充內容以保持語義的正確性,並將頁面內容與樣式分開。

&nbsp;的寬度取決於字體大小,字母間距等與任何其他字符相同,如上所述,這可以由用戶更改,因此沒有可靠的方法知道。

+2

是的,但實際點nbsp (非中斷空間)在於它不允許分割線(例如,「20   000」將確保數字之間沒有換行符)。防止空白崩潰只是一個副作用。 – JJJ

+0

謝謝,更新了我的答案,包括這一點。 :) – Maccath

+0

可以安全地假定它會少於等於字體大小?如果頁面中的所有元素的字體系列和大小相同,那麼它們的寬度也是相同的? –