有很多關於CSS中不同措施的文章,但實際上我找不到任何回答我的問題的文章!當我們在CSS中設置px中的字體大小時,文本的哪個維實際設置爲該值?
當我們設置字體大小爲例如16px,字形或字符的哪一部分將設置爲16px? (它是x高度,高度還是......)?!
如何在CSS中精確控制我的字符高度? (類似於使用ex單元,但是用於字符的整個高度)
有很多關於CSS中不同措施的文章,但實際上我找不到任何回答我的問題的文章!當我們在CSS中設置px中的字體大小時,文本的哪個維實際設置爲該值?
當我們設置字體大小爲例如16px,字形或字符的哪一部分將設置爲16px? (它是x高度,高度還是......)?!
如何在CSS中精確控制我的字符高度? (類似於使用ex單元,但是用於字符的整個高度)
這完全取決於矢量圖像是如何在字體中定義的。
定義字體時,您有一個「文檔」,就像使用Adobe Illustrator或任何其他矢量編輯工具時一樣。該文件將是100%的高度。如果構建字體的人沒有將字形伸展到文檔的高度,那麼在定義的大小上永遠不會高。
對於文本字符(字體),有指導如何下降,「g,y」,大寫高度「A對a」和上升會出現等等,但不是字形。所以沒有真正的衡量標準。
正確獲取字形的大小有時是一個試驗和錯誤的問題。 理想情況下,字形應該與大寫字母(E)的高度相同,但有時候字形的大小會有所不同。例如,商標(™)被設計成上標。它更小,但設計成與基本字體大小成比例。
對於在字體是如何定義的更詳細的研究見:Typeface Anatomy.
的font-size
屬性設置的字體,它等於字體的高度,這不等於任何字符的任何維度的大小,不同之處意外地。它只是一個參考數量,通常足以容納字符所佔據的整個垂直空間,包括下降部分,上升部分和常用變音標記,但不包括任何變音符號序列。通常情況下,「Q」,「É」,「þ」和「Å」都適合字體高度,因此需要大於「E」和「A」的高度。但這不是一個法律;在某些字體中,例如「Å」延伸到字體高度的頂部以上
事故包括已定義尺寸與字體大小相同的字符。例如,EM SPACE的寬度可以等於字體大小,但即使這樣(根據Unicode標準),只是「名義上」,並且可能因濃縮係數而異。 (EM DASH的寬度可以是一個em
,但這不是其定義的一部分,與其名稱暗示相反)。
字體的大小肯定大於x高度並大於高度大寫字母(部分是因爲一些大寫字母具有下行)。人們普遍認爲字體大小(em
單位)等於「M」的寬度顯然是錯誤的,因爲即使是最簡單的檢查也能證明。
感謝您的回答。正如我對Diodeus所說的那樣,我想用CSS以數學方式控制我的文本的高度,並且不知何故我希望這是準確的(不使用LESS或SCSS)。還有什麼可以幫助我實現這一目標的前單元嗎? – Shnd
這是一個很好的答案,謝謝:D 但讓我稍微擴展一下我的問題。是否有某種類似於em或ex的單位,讓我可以控制字體的「文檔」的高度?! – Shnd