您好,登錄后才能下訂單哦!
這篇文章主要介紹“canvas無法使用rem單位的解決方案”,在日常操作中,相信很多人在canvas無法使用rem單位的解決方案問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”canvas無法使用rem單位的解決方案”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
CSS3中新的字體單位rem
前段時間無意中在wordpress主題中接觸到一種字體單位rem,當時我就很好奇,畢竟以前沒有見過,于是我馬上查找資料,并測試了一回.
眾所周知在web中有很多字體單位(font-size)較常見的有em,px,讓我們對比一下這兩種單位:
px是絕對值,準確而穩定.但是它的改變會影響頁面布局.
em是相對值,它以父元素的大小為基準單位,來計算大小.所以很難把握.
考慮到這么多字體單位的優缺點,在CSS3中rem誕生了.rem也是相對單位(rem=root em)很明顯rem是由em變化而來,或者說rem是em的升級版,具體來歷.我們就不要去追究了,從字體表面上看,它就是這么回事.
root em,就是相對于根目錄的em而不是相對于父元素,也就是說,它雖然是絕對值,但是只是相對于根目錄來說也就是html,它不會隨著其它元素的改變而改變.也就是說,我們只要設定html的文字大小就可以了.而不用考慮其它因素.
而且他還具有非常好的支持Chrome,Firefox,Safari,Opera,IE9+.IE6,7,8就只能使用px或者em了.
XML/HTML Code復制內容到剪貼板
html{
font-size:62.5%;
}
為什么要這么設置呢?因為網頁上的字體默認是16px,而16px的62.5%就是10px;也就是說這樣的活1rem就等于10px,這個對于我們來說是非常棒的,font-size:1.2rem,當然為了兼容IE的低級版本還要寫font-size:12px,別忘了要寫在rem的前面.
在這里我要提到一點的就是,假如你要是用rem來設置行高,邊距之類的單位.請在html中加入這么一句話:-webkit-text-size-adjust:none;來消除webkit的默認屬性.否則在其它的地方rem不是以根目錄作為基準值了.
canvas無法使用rem單位的解決方案
我們在使用canvas時需要設置畫布的大小,即設置canvas標簽的width,height屬性。
XML/HTML Code復制內容到剪貼板
<canvas width="200px" height="200px"></canvas>
在移動端,畫布的大小要根據屏幕的大小進行適配,我們一般采用rem結合媒體查詢的方式。使用canvas時就遇到遇到一些問題:
canvas的width屬性不支持rem單位(如果使用樣式當然支持rem,但注意canvas的width屬性與style中的width是有區別的),如下
CSS Code復制內容到剪貼板
<canvas width="2.5rem" height="2.5rem"></canvas>
translate方法傳參是坐標位置,不帶單位,如ctx.translate(10,10);
適配屏幕是必須的,但如何解決?用最原始的百分比布局就可以:
//獲取屏幕的寬度
var clientWidth = document.documentElement.clientWidth;
//根據設計圖中的canvas畫布的占比進行設置
var canvasWidth = Math.floor(clientWidth*200/720);
canvas.setAttribute('width',canvasWidth+'px');
canvas.setAttribute('height',canvasWidth+'px');
//translate方法也可以直接傳入像素點坐標
到此,關于“canvas無法使用rem單位的解決方案”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。