2011-10-26 128 views
9

網絡上的各種文本聲稱「pt」是默認的字體大小單位,但沒有提供,但我自己的測試似乎證明了其他情況。我已經閱讀了W3C的許多關於CSS 1-3的字體大小的文檔,並且我似乎無法找到任何規範中默認單元的實際參考。字體大小的默認單位?

我已經在Chrome和IE9中測試了這一點,並得到了與每個完全相同的結果:缺少單元的元素是最小的,px元素在中間,而pt元素是最大的。我試圖使用W3C定義的許多其他單位(例如「mm」,「ex」,「pc」等)匹配尺寸,但測試元素的大小與目標元素(一個沒有單位)。

任何有識之士將不勝感激。

<div style="font-size: 20;">20 size</div> 
<div style="font-size: 20px;">20px size</div> 
<div style="font-size: 20pt;">20pt size</div> 

回答

7

"CSS Fonts Module Level 3"font-size屬性可以是值:

值:<絕對尺寸> | < relative-size > | <長度> | < >

<absolute-size><relative-size><percentage>在同規格定義,都是要麼關鍵字(e.x. smalllarger等),或者有個單位百分比。

<length>被更通用的是在"CSS Values and Units Module Level 3"定義:

長度指的距離測量並通過<長度>在屬性定義來表示。長度是dimension。然而,對於零長度,單元標識符是可選的(即,可以在語法上表示爲<號碼> 0)。

這是什麼意思是font-size的無單位數無效,0明確的例外。


說了算,<div style="font-size: 20;">20 size</div>被渲染到什麼尺寸?

呈現的font-size的元素將取決於很多東西。但是,如果我們能夠假設

  • 用戶沒有瀏覽器使用的默認樣式定製的默認font-size
  • 沒有,否則將改變font-size(如父元素<font><sub><h1> ...是的,它是不合法的標記有這些元素作爲父母,但它仍然會改變font-size

那麼默認font-size在每一個現代瀏覽器,我所知道的是目前16px

+2

您是否有參考被忽略?不是我懷疑你,我只是好奇/爲什麼我似乎錯過了這個規範(如果這就是它的位置)。 – ken

+0

我確實相信你是正確的,我剛剛測試過,它恰好是16px(我記得在某些瀏覽器中將其列爲默認文本大小)。 – ken

+0

我將從鏈接到[CSS規格](http://www.w3.org/TR/CSS2/)開始,如果找到有關處理無效css規則的相關小節,我會進行更新。 – zzzzBov