1. 程式人生 > >關於IFC(涉及line-height、vertical-align、font-size等概念)的糾誤與理解

關於IFC(涉及line-height、vertical-align、font-size等概念)的糾誤與理解

font-size

    font-size是什麼?個人理解就是指定字型的大小。

    細心的你會發現,實際上哪怕設定了font-size: 自定義值,字型真正顯示的高度也不會是自定義值。

    那這是為什麼?

    此時,你需要了解字型的度量,瞭解設計師們是怎麼對字型進行定義的。詳情請前往:https://zhuanlan.zhihu.com/p/25808995

(注,其中有些概念個人反覆研究覺得不太正確,後面會講)

    簡單而言,字型設定的空間外還留有一段空間(個人推測

: 為圖文排列設定好了一個預設值,放置緊密排列)

line-height

    特性1.預設值為normal,normal值由字型度量決定,不同的字型,不同的normal預設值

    特性2:content-area(上述連結中所使用名稱,這裡仍引用,但概念不同,區分content-box)的大小也是由字型度量決定,字型度量一旦確定,那麼content-area的大小也是不會改變的,(個人推測 =>同時即使設定了line-height,也不會重新去計算字型大小,原因=>未設定具體數值之前,normal非1,那麼就有line-gap(詳情檢視上述連結),因此,會覆蓋line-gap,相當於覆蓋掉了原先的normal值,只會將line-height減去font-size的值對半分在上下)

    連結誤區:content-area ≠ background作用域,content-area只單純指字型的度量,而background作用域是padding-box以內的區域。

    注意: 字型的度量是無法通過css查看出來的,因此這裡無法判斷是否真正的對半分(是不是很無聊。。。)。

    特性3:設定數字值是根據font-size來計算的

line-box

    計算規則: 子元素最高位置 減去 子元素中最低位置,即為line-box。

    連結誤區:line-box高度 ≠ line-height的高度(子元素中line-height高度最高的位置減去最低的位置),這是錯誤的,因為對於替換內聯元素來說,margin與padding都能夠影響到line-box。

vertical-align

    屬性值: top/bottom/middle/text-top/text-bottom

    middle計算的規則是baseline位置加上x-height的一半,基本上在連結裡面都有講,非常仔細,大家多瞭解瞭解。

如果有什麼疑問或者錯誤的地方,歡迎大家提出~~~