css單位中px和em,rem的區別

來源:互聯網
上載者:User

標籤:em   css   區別   

css單位中分為相對長度單位、絕對長度單位。

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/05/AC/wKiom1mpJyCRZ56XAABK9hh9xdg818.jpg-wh_500x0-wm_3-wmp_4-s_1725473713.jpg" title="1.jpg" alt="wKiom1mpJyCRZ56XAABK9hh9xdg818.jpg-wh_50" />

今天我們主要講解rem、em、px這些常用單位的區別和用法。

px(絕對長度單位)

相信對於前端來說px這個單位是大家並不陌生,px這個單位,相容性可以說是相當可以,大家對px的瞭解肯定是沒有很大的問題的。

em(相對長度單位)

使用:1、瀏覽器的預設字型都是16px,那麼1em=16px,以此類推計算12px=0.75em,10px=0.625em,2em=32px;

2、這樣使用很複雜,很難很好的與px進行對應,也導致書寫、使用、視覺的複雜(0.75em、0.625em全是小數點);

3、為了簡化font-size的換算,我們在body中寫入一下代碼

body {font-size: 62.5%;  } /*  公式16px*62.5%=10px  */  

這樣頁面中1em=10px,1.2em=12px,1.4em=14px,1.6em=16px,使得視覺、使用、書寫都得到了極大的協助。

例子如下:

<div class="font1" style=‘font-size:1.6em‘>我是1.6em</div>

運行效果為:


650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/05/AC/wKiom1mpJzDy4erUAABKKD5Shio068.png-wh_500x0-wm_3-wmp_4-s_3371604369.png" title="2.png" alt="wKiom1mpJzDy4erUAABKKD5Shio068.png-wh_50" />


缺點:

1、em的值並不是固定的;

2、em會繼承父級元素的字型大小(參考物是父元素的font-size;);

3、em中所有的字型都是相對於父元素的大小決定的;所以如果一個設定了font-size:1.2em的元素在另一個設定了font-size:1.2em的元素裡,而這個元素又在另一個設定了font-size:1.2em的元素裡,那麼最後計算的結果是1.2X1.2X1.2=1.728em

例如:

<div class="big">
   我是大字型
  <div class="small">我是小字型</div>
</div>

樣式為

<style>
    body {font-size: 62.5%; } /*  公式:16px*62.5%=10px  */
   .big{font-size: 1.2em}
   .small{font-size: 1.2em}
</style>

但運行結果small的字型大小為:1.2em*1.2em=1.44em


650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/A4/5E/wKioL1mpJzDRRhPXAABaz50KSko696.png-wh_500x0-wm_3-wmp_4-s_2931024816.png" title="3.png" alt="wKioL1mpJzDRRhPXAABaz50KSko696.png-wh_50" />

*寬度高度也是同理

rem(相對長度單位)

使用:1、瀏覽器的預設字型都是16px,那麼1rem=16px,以此類推計算12px=0.75rem,10px=0.625rem,2rem=32px;

2、這樣使用很複雜,很難很好的與px進行對應,也導致書寫、使用、視覺的複雜(0.75rem、0.625em全是小數點) ;

3、為了簡化font-size的換算,我們在根項目html中加入font-size: 62.5%;

html {font-size: 62.5%;  } /*  公式16px*62.5%=10px  */  

這樣頁面中1rem=10px,1.2rem=12px,1.4rem=14px,1.6rem=16px;使得視覺、使用、書寫都得到了極大的協助;

例子如下:

<div class="font1" style=‘font-size:1.6rem‘>我是1.6rem=16px</div>

運行效果為:


650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/05/AD/wKiom1mpJ1rwyiZmAABS6GuTt0Q253.png-wh_500x0-wm_3-wmp_4-s_2240265030.png" title="4.png" alt="wKiom1mpJ1rwyiZmAABS6GuTt0Q253.png-wh_50" />



特點:

1、rem單位可謂集相對大小和絕對大小的優點於一身

2、和em不同的是rem總是相對於根項目(如:root{}),而不像em一樣使用級聯的方式來計算尺寸。這種相對單位使用起來更簡單。

3、rem支援IE9及以上,意思是相對於根項目html(網頁),不會像em那樣,依賴於父元素的字型大小,而造成混亂。使用起來安全了很多。

例如:

<div class="big">
   我是14px=1.4rem<div class="small">我是12px=1.2rem</div>
</div>

樣式為:

<style>
   html {font-size: 10px;  } /*  公式16px*62.5%=10px  */  
   .big{font-size: 1.4rem}
   .small{font-size: 1.2rem}
</style>

運行結果:


650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/A4/5E/wKioL1mpJ1GChYLYAACdpb6xLMM519.png-wh_500x0-wm_3-wmp_4-s_2645403851.png" title="5.png" alt="wKioL1mpJ1GChYLYAACdpb6xLMM519.png-wh_50" />

注意:

  • 值得注意的瀏覽器支援問題: IE8,Safari 4或 iOS 3.2中不支援rem單位。

  • 如果你的使用者群都使用最新版的瀏覽器,那推薦使用rem,如果要考慮相容性,那就使用px,或者兩者同時使用。

這就是我整體對px、em、rem區別的總結,希望對大家有協助,我會持續進步更新我的知識庫,嘻嘻*_*


本文出自 “前端開發” 部落格,請務必保留此出處http://smalljiayi.blog.51cto.com/13254596/1962006

css單位中px和em,rem的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.