目前有兩種,一種是根據js來調整html的字型大小,另一種則是通過**查詢來調整字型大小。
使用js
;(function(designwidth, maxwidth) ;if (width > maxwidth)
//與**做法不同,直接採用簡單的rem換算方法1rem=100px
var rem = width * 100 / designwidth;
//相容uc開始
rootstyle="html';
rootitem = document.getelementbyid('rootsize') || document.createelement("style");
if(!document.getelementbyid('rootsize'))
if(rootitem.stylesheet)elsecatch(f)
} //相容uc結束
docel.style.fontsize = rem + "px";
}; refreshrem();
win.addeventlistener("resize", function() , false);
win.addeventlistener("pageshow", function(e)
}, false);
if (doc.readystate === "complete") else , false);
}})(640, 640);
專案主頁
上面**中的關鍵**是:
var width = docel.getboundingclientrect().width;使用**查詢var rem = width * 100 / designwidth;
docel.style.fontsize = rem + "px";
說到底,上面的js**不就是根據不同的裝置調整對應的html字型大小嘛,那麼我們根據實際的裝置,來加上相應的字型大小不就行了嗎?
我們知道html的預設字型大小是16px,則對應的裝置下可以通過設定對應的font-size使其有一致的縮放比例。
html上面的**則是通過1rem=20px來換算的,從**看出來呢?從最大的乙個值640出發,假如你的設計稿是750的話,那你還要設計更多的** 查詢,換算比例保持一致就可以了。那如果我想要換算比例為1rem=100呢?按照上面的規則,最大的值為:html:font- size:100/16*100%,其它的則按比例,比如480px,則為480/640*(100/16*100%)。@media only screen and (min-width: 481px)
}@media only screen and (min-width: 561px)
}@media only screen and (min-width: 641px)
body
}
國內的很多人都提倡使用字型圖示或者用svg的方式來實現,但這些在小專案中明顯是有點不實際。我通常使用下面兩種方式。
第一種將背景切成乙個,然後換算成base64.的方式,或者使用sass的方式轉換,不過有弊端就是樣式檔案會增大,看個人衡量。
第二種則是通過背景的百分比精準定位,詳情見這篇文章:css3背景百分比及應用。
或者對於精準度不太高,其實使用rem定位也可以,就是要把相鄰隔開些。
rem自適應原理
目前有兩種,一種是根據js來調整html的字型大小,另一種則是通過 查詢來調整字型大小。使用js function designwidth,maxwidth if width maxwidth 與 做法不同,直接採用簡單的rem換算方法1rem 100px var rem width 100 des...
Rem 自適應布局
1.先引入一下js,到頭部的script標籤的最前面。2.根據設計稿大小,調整裡面的最後兩個引數值。3.使用1 rem 100px轉換你的設計稿的畫素,例如設計稿上某個塊是100px 300px,換算成 rem則為1 rem 3rem。上面的 如果在 uc瀏覽器下橫屏與豎屏轉換,發現 並沒有 自適應...
自適應rem布局
自適應處理 假設 function doc,win if doc.addeventlistener return win.addeventlistener resizeevt,recalc,false doc.addeventlistener domcontentloaded recalc,fals...