CSS Font-Size: em、px 、pt 、Percent之間的關系及換算
發(fā)布時間:2014-05-15 17:08:09 作者:佚名
我要評論

這篇文章主要介紹了CSS Font-Size: em、 px 、pt 、Percent之間的關系及換算,本篇整理的還是比較詳細的,需要的朋友可以參考下
一、基礎介紹
1、“Ems”: em,大小不固定 ,成為相對單位(body則相對瀏覽器的默認字體設置,子集相對父級), 瀏覽器默認設置字體大小為16px , 則1em = 16px , 且其可擴展,2em = 32px , 目前常用的字體大小px換算成em ,
16px = 1em; 14px = 0.875em; 12px = 0.75em; 10px = 0.625em
2、“Pixels”: px,大小是固定的,稱為絕對單位,在移動端的可訪問性差
3、“Points”:pt,大小固定,屬于絕對單位,適用于印刷、打印媒體。
4、“Percent”: %,跟em相似,以percent來表示,則當前字體的大小為100% ,使用% 設置字體,你的頁面字體在移動設備端的可訪問性也很好。
二、關系
一般情況下,1em=12pt=16px=100% . 下面例子前提在body中設置基礎字體大小。
由上圖可看出,相對單位em 和 % 會隨著基礎字體大小的變化而變化,而pt 和 px 不會變化,這就是為什么選擇em 和 % 設置web文檔文本的字體(其在移動端的訪問性也很好)。
三、em 與 % ,em與px 的換算
em的特點:
1. em的值并不是固定的;
2. em會繼承父級元素的字體大小。
重寫步驟:
1. body選擇器中聲明Font-size:62.5%;
2. 將你的原來的px數(shù)值除以10,然后換上em作為單位;
如果只需要以上兩步就能解決問題的話,可能就沒人用px了。經(jīng)過以上兩步,你會發(fā)現(xiàn)你的網(wǎng)站字體大得出乎想象。因為em的值不固定,又會繼承父級 元素的大小,你可能會在content這個div里把字體大小設為1.2em, 也就是12px。然后你又把選擇器p的字體大小也設為1.2em,但如果p屬于content的子級的話,p的字體大小就不是12px,而是1.2em= 1.2 * 12px=14.4px。這是因為content的字體大小被設為1.2em,這個em值繼承其父級元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作為其子級,em則繼承content的字體高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。
3. 重新計算那些被放大的字體的em數(shù)值。避免字體大小的重復聲明,也就是避免以上提到的1.2 * 1.2= 1.44的現(xiàn)象。比如說你在#main中聲明了字體大小為1.2em,那么在聲明p的字體大小時就只能是1em,而不是1.2em, 因為此em非彼em,它因繼承#content的字體高而變?yōu)榱?em=12px。
詭異的12px漢字
在完成em轉換時還會發(fā)現(xiàn)一個詭異的現(xiàn)象,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而 是稍大一點。這個問題我已經(jīng)解決,你只需在body選擇器中把62.5%換成63%就能正常顯示了。
1、“Ems”: em,大小不固定 ,成為相對單位(body則相對瀏覽器的默認字體設置,子集相對父級), 瀏覽器默認設置字體大小為16px , 則1em = 16px , 且其可擴展,2em = 32px , 目前常用的字體大小px換算成em ,
16px = 1em; 14px = 0.875em; 12px = 0.75em; 10px = 0.625em
2、“Pixels”: px,大小是固定的,稱為絕對單位,在移動端的可訪問性差
3、“Points”:pt,大小固定,屬于絕對單位,適用于印刷、打印媒體。
4、“Percent”: %,跟em相似,以percent來表示,則當前字體的大小為100% ,使用% 設置字體,你的頁面字體在移動設備端的可訪問性也很好。
二、關系
一般情況下,1em=12pt=16px=100% . 下面例子前提在body中設置基礎字體大小。

由上圖可看出,相對單位em 和 % 會隨著基礎字體大小的變化而變化,而pt 和 px 不會變化,這就是為什么選擇em 和 % 設置web文檔文本的字體(其在移動端的訪問性也很好)。
三、em 與 % ,em與px 的換算
em的特點:
1. em的值并不是固定的;
2. em會繼承父級元素的字體大小。
重寫步驟:
1. body選擇器中聲明Font-size:62.5%;
2. 將你的原來的px數(shù)值除以10,然后換上em作為單位;
如果只需要以上兩步就能解決問題的話,可能就沒人用px了。經(jīng)過以上兩步,你會發(fā)現(xiàn)你的網(wǎng)站字體大得出乎想象。因為em的值不固定,又會繼承父級 元素的大小,你可能會在content這個div里把字體大小設為1.2em, 也就是12px。然后你又把選擇器p的字體大小也設為1.2em,但如果p屬于content的子級的話,p的字體大小就不是12px,而是1.2em= 1.2 * 12px=14.4px。這是因為content的字體大小被設為1.2em,這個em值繼承其父級元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作為其子級,em則繼承content的字體高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。
3. 重新計算那些被放大的字體的em數(shù)值。避免字體大小的重復聲明,也就是避免以上提到的1.2 * 1.2= 1.44的現(xiàn)象。比如說你在#main中聲明了字體大小為1.2em,那么在聲明p的字體大小時就只能是1em,而不是1.2em, 因為此em非彼em,它因繼承#content的字體高而變?yōu)榱?em=12px。
詭異的12px漢字
在完成em轉換時還會發(fā)現(xiàn)一個詭異的現(xiàn)象,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而 是稍大一點。這個問題我已經(jīng)解決,你只需在body選擇器中把62.5%換成63%就能正常顯示了。
相關文章
css中一些常用的font-size字體單位和line-height詳解
這篇文章主要介紹了css中一些常用的font-size字體單位和line-height的相關知識,給大家提到了px(pixel)像素的一些小知識,本文通過實例代碼相結合給大家介紹的非常詳細,感2020-05-20詳解使用 CSS 的 font-size-adjust 屬性改善網(wǎng)頁排版
本篇文章主要介紹了使用 CSS 的 font-size-adjust 屬性改善網(wǎng)頁排版,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-18- 這篇文章主要介紹了CSS中的font-size屬性使用教程,是CSS入門學習中的基礎知識,需要的朋友可以參考下2015-08-13
- 這篇文章主要介紹了CSS的font-size屬性及其em值的使用,是CSS入門學習中的基礎知識,需要的朋友可以參考下2015-08-05
- CSS的字體樣式設置相信許多人再熟悉不過,其實字體樣式的設置并不僅僅限于我們平時常用的那幾個屬性,本文為您詳細敘述 font-size 的字體樣式設置的詳細屬性。2009-08-29
- 這篇文章主要介紹了一行代碼搞定 font-size 響應式,該屬性設置元素的字體大小,font-size 屬性可設置字體的尺寸,本文給大家介紹的非常詳細,需要的朋友可以參考下2023-05-09