欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

輕松掌握CSS3中的字體大小單位rem的使用方法

WEB前端工程師   發(fā)布時(shí)間:2016-05-24 11:32:21   作者:wenyejie   我要評(píng)論
rem是css3新定義的設(shè)置字體大小屬性,rem大小都是以html的字體大小設(shè)置為參考值進(jìn)行一個(gè)字體大小縮放,下面就帶大家來輕松掌握CSS3中的字體大小單位rem的使用方法:

CSS3中新的字體單位rem
前段時(shí)間無意中在wordpress主題中接觸到一種字體單位rem,當(dāng)時(shí)我就很好奇,畢竟以前沒有見過,于是我馬上查找資料,并測(cè)試了一回.

眾所周知在web中有很多字體單位(font-size)較常見的有em,px,讓我們對(duì)比一下這兩種單位:

px是絕對(duì)值,準(zhǔn)確而穩(wěn)定.但是它的改變會(huì)影響頁(yè)面布局.
em是相對(duì)值,它以父元素的大小為基準(zhǔn)單位,來計(jì)算大小.所以很難把握.
考慮到這么多字體單位的優(yōu)缺點(diǎn),在CSS3中rem誕生了.rem也是相對(duì)單位(rem=root em)很明顯rem是由em變化而來,或者說rem是em的升級(jí)版,具體來歷.我們就不要去追究了,從字體表面上看,它就是這么回事.

root em,就是相對(duì)于根目錄的em而不是相對(duì)于父元素,也就是說,它雖然是絕對(duì)值,但是只是相對(duì)于根目錄來說也就是html,它不會(huì)隨著其它元素的改變而改變.也就是說,我們只要設(shè)定html的文字大小就可以了.而不用考慮其它因素.

而且他還具有非常好的支持Chrome,Firefox,Safari,Opera,IE9+.IE6,7,8就只能使用px或者em了.

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. html{      
  2.     font-size:62.5%;      
  3. }  

為什么要這么設(shè)置呢?因?yàn)榫W(wǎng)頁(yè)上的字體默認(rèn)是16px,而16px的62.5%就是10px;也就是說這樣的活1rem就等于10px,這個(gè)對(duì)于我們來說是非常棒的,font-size:1.2rem,當(dāng)然為了兼容IE的低級(jí)版本還要寫font-size:12px,別忘了要寫在rem的前面.

在這里我要提到一點(diǎn)的就是,假如你要是用rem來設(shè)置行高,邊距之類的單位.請(qǐng)?jiān)趆tml中加入這么一句話:-webkit-text-size-adjust:none;來消除webkit的默認(rèn)屬性.否則在其它的地方rem不是以根目錄作為基準(zhǔn)值了.

canvas無法使用rem單位的解決方案
我們?cè)谑褂胏anvas時(shí)需要設(shè)置畫布的大小,即設(shè)置canvas標(biāo)簽的width,height屬性。

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <canvas width="200px" height="200px"></canvas>  

在移動(dòng)端,畫布的大小要根據(jù)屏幕的大小進(jìn)行適配,我們一般采用rem結(jié)合媒體查詢的方式。使用canvas時(shí)就遇到遇到一些問題:

canvas的width屬性不支持rem單位(如果使用樣式當(dāng)然支持rem,但注意canvas的width屬性與style中的width是有區(qū)別的),如下

CSS Code復(fù)制內(nèi)容到剪貼板
  1. <canvas width="2.5rem" height="2.5rem"></canvas>  

translate方法傳參是坐標(biāo)位置,不帶單位,如ctx.translate(10,10);
適配屏幕是必須的,但如何解決?用最原始的百分比布局就可以:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. //獲取屏幕的寬度   
  2. var  clientWidth = document.documentElement.clientWidth;   
  3. //根據(jù)設(shè)計(jì)圖中的canvas畫布的占比進(jìn)行設(shè)置   
  4. var canvasWidth = Math.floor(clientWidth*200/720);   
  5. canvas.setAttribute('width',canvasWidth+'px');   
  6. canvas.setAttribute('height',canvasWidth+'px');   
  7. //translate方法也可以直接傳入像素點(diǎn)坐標(biāo)  

相關(guān)文章

  • 詳解CSS3 rem(設(shè)置字體大小) 教程

    本篇文章主要介紹了詳解CSS3 rem(設(shè)置字體大小) 教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-21

最新評(píng)論