2010-12-17 87 views

回答

33

儘管你可能在其他地方讀什麼,有EM和PX之間沒有直接關係。

由於鏈接的一個規定:

的「EM」值由大寫字母M

所以這將是爲每個字體不同的寬度基於 。窄字體可能與擴展字體具有相同的高度(以px爲單位),但em的大小會有所不同。

編輯三年後:

現在有大量的來源這不能不說1EM =字體大小(單位:像素)。也就是說,當你寫font-size:16px,那麼1em = 16px。這仍然不符合Adobe的來源(其中說1em =在pt中的字體大小),但無論如何,這似乎是奇怪的; em的大小對於濃縮字體來說太大了,對於擴展字體來說太小了。

我打算做一些測試頁面,看看我自己。

並且:

我看,沒有人(包括我在內)實際上回答了這個問題(這是一種隱藏的):

我也是在其他地方見過一些,即錯誤,克服該集正文字體大小的東西

this page,你需要把它添加到你的CSS:html{ font-size:100%; }。該頁面已經六年了,我還沒有閱讀(數百條)評論,所以我不知道它是否仍然相關。

+0

這真是新鮮事。有一些我可以在附近閱讀的來源。 – 2010-12-17 19:51:10

+3

http://en.wikipedia.org/wiki/Em_(typography),它引用Adobe(http://www.adobe.com/uk/type/topics/glossary.html)。但現在我讀了它,該頁面還說「Em傳統上被定義爲當前面和點大小中的大寫字母M的寬度,它被更好地定義爲當前點大小,例如,在12點類型,em是12點的距離。「 – egrunin 2010-12-17 19:52:19

+0

您是否看到提及一些錯誤,例如爲了正確工作而設置主體字體大小爲100% – 2010-12-17 20:05:26

5

它計算過的無論你的身體字體大小。您可以使用像素轉換器來查找它到底是什麼在您的網站上。

PxToEm

2

EM是測量正比於字體的點大小的單位。

17

em是基於字母M並依賴於字體的M原則是一個經常說的神話! W3c em documentation非常簡潔地描述了ems和像素如何相關。使用字母M來計算字體大小至少是過於複雜和不必要的。

的「時間」單元是等於 在其上所使用的元件中的「字體大小」屬性的計算 值。 例外情況是'em'發生在'font-size'屬性 本身的 值中,在這種情況下,它指的是父元素的 字體大小。它可以用於測量垂直或水平的 。

這裏是要點。

  1. 沒有祖先的放大倍數,1em與像素font-size屬性完全相同。

  2. x-ems或x-percent的祖先放大倍數意味着您只需乘以明顯的倍數x或x/100即可。因此,一個簡單的java腳本循環會計算出確切的字體大小,假設:(1)沒有C.S.S挫敗java腳本; (2)某些祖先的字體大小以絕對單位設置。這是文檔討論的計算值。手算可以繞過C.S.S.,但絕對單位仍然必須在祖先鏈中找到。

  3. 由於ems可以測量寬度,所以您可以通過創建一個1000 ems長的div並將其client-width屬性除以1000來計算確切的字體大小。由於ems四捨五入到最接近的千分之一,所以需要1000 ems來避免錯誤的像素截斷。

  4. 您可能會創建一個M原理失敗的字體,因爲em基於字體大小屬性而不是實際字體。假設你有一個奇怪的字體,其中M是其他字符大小的1/3,並且字體大小爲10像素。你不認爲像素字體大小以某種方式保證了最大字符高度,所以M不會是10像素,所有其他字符都是30像素?

警告

  1. 一個主要告誡(2)的是,前部的相對比率是大幅度變化的不穩定。 在具有常量字體的相同瀏覽器中,相對比率可以隨字體大小而變化。即使使用相同的字體大小和瀏覽器安全字體(如Georgia),ex的相對比率也會隨瀏覽器而變化。如果你想要符合要求,這是一個很好的理由不要使用前單元。如果使用ex單位,則不可能通過祖先鏈計算字體大小。
3

em是最初用於印刷字體的測量(根據維基百科)。這裏有一些要考慮的事情:如果em被定義爲12pt類型,那麼em是12/72英寸的打印頁面;但是如果將em定義爲16px,則其寬度以英寸爲單位取決於媒體的分辨率。 (注意:在移動設備出現之前,72ppi到120ppi的分辨率被認爲是「安全瀏覽器」標準)。因此,當用戶使用300像素寬度的設備時,1em像16px一樣是很多「不動產」。在我看來,最佳的em測量方法是定義文本段落來有效地平衡空白區域,而不是頁面佈局或定位。

2

以字母「M」命名的em單位在印刷術中有着悠久的歷史,它用於測量水平寬度。例如,在美國文本( - )中經常出現的長衝刺被稱爲「em-dash」,因爲它在歷史上與字母「M」具有相同的寬度。在歐洲文本中經常出現的較窄表親( - )同樣被稱爲「短劃線」。

「em」的含義多年來一直在改變。並非所有字體都有字母「M」(例如中文),但所有字體都有高度。因此該術語意味着字體的高度 - 而不是字母「M」的寬度。

令人驚奇的em單位和其他最佳實踐https://www.w3.org/WAI/GL/css2em.htm

相關問題