px
像素(Pixel)。相對長度單位。像素px是相對於顯示器屏幕分辨率而言的。
特點:
1. IE無法調整那些使用px作為單位的字體大小;
2. 國外的大部分網站能夠調整的原因在於其使用了em或rem作為字體單位;
3. Firefox能夠調整px和em,rem,但是96%以上的中國網民使用IE瀏覽器(或內核)。
pt
是一個物理長度單位,指的是72分之一英寸。9pt=12px,可以依次換算。
em
相對長度單位,相對於當前對象內文本的字體尺寸。任意瀏覽器的默認字體高都是16px,所以未經調整的瀏覽器都符合: 1em=16px。
特點:
1. em的值並不是固定的;
2. em會繼承父級元素的字體大小。
<div style="font-size:20px;"> <p style="font-size:1em;">這里1em=20px</p> <p style="font-size:2em;">這里2em=40px</p> </div>
上面的例子就說明了em的值並非固定的,他是根據父元素的字體大小來決定的。如果父元素設置了font-size:20px,那么1em=20px,2em=40px;如果父元素設置了font-size:30px,那么1em=30px,2em=60px。依次類推。
rem
是CSS3新增的一個相對單位,可以理解為"root em",相對於根節點html的字體大小來計算的,chrome/firefox/IE9+支持。任意瀏覽器的默認字體高都是16px,所以未經調整的瀏覽器都符合: 1rem=16px。
<html style="font-size:100px;"> <head> <title></title> </head> <body> <p style="font-size:1rem;">這里1rem=100px</p> <div style="font-size:50px;"> <p style="font-size:2rem;">這里2rem=200px</p> </div> </body> </html>
上面的例子說明了,rem的值只受到根節點html的字體大小影響,並不受父元素字體大小的影響。如果根節點html設置了font-size:100px,那么1rem=100px,2rem=200px;如果根節點html設置了font-size:200px,那么1rem=200px,2rem=400px。依次類推。
rem和em在為元素設置字體大小時,都是相對大小。區別在於:使用rem時,相對的只是HTML根元素。
rem這個單位可謂集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。
注意:
谷歌瀏覽器chrome強制最小字體為12px,因此即使設置了小於12px的值,也會顯示成12px。因此,當你給html設置font-size:10px時,1rem並不是等於10px,而是等於12px
具體使用哪種字體單位,還是要根據項目實際情況來定的。rem更加適合不用考慮低版本瀏覽器兼容問題的項目來使用。
