建議對於js作內聯處理
,在全部資源加載以前執行這個js。css
執行這個js後,會在html
(也就是document.documentElement)上增長一個data-dpr
屬性,以及font-size
樣式。html
以後頁面中的元素,均可以用rem單位來設置。html
上的font-size
就是rem的基準像素。git
首先,目前視覺稿大小分爲640
,750
以及,1125
這三種。github
當前方案會把這3類視覺稿分紅100份
來看待(爲了之後兼容vh,vw單位)。每一份被稱爲一個單位a。同時,1rem單位認定爲10a。拿750的視覺稿舉例:字體
1a = 7.5px 1rem = 75px
所以,對於視覺稿上的元素的尺寸換算,只須要原始px值
除以rem基準px值
便可。例如240px * 120px的元素,最後轉換爲3.2rem * 1.6rem。flex
字體的大小不推薦用rem做爲單位。因此對於字體的設置,仍舊使用px做爲單位,並配合用data-dpr
屬性來區分不一樣dpr下的的大小。spa
例如:設計
div { width: 1rem; height: 0.4rem; font-size: 12px; // 默認寫上dpr爲1的fontSize } [data-dpr="2"] div { font-size: 24px; } [data-dpr="3"] div { font-size: 36px; }
引入執行js以前,能夠經過輸出meta標籤方式來手動設置dpr。語法以下:code
<meta name="flexible" content="initial-dpr=2,maximum-dpr=3" />
其中initial-dpr
會把dpr強制設置爲給定的值,maximum-dpr
會比較系統的dpr和給定的dpr,取最小值。注意:這兩個參數只能選其一。cdn
輸出以下css樣式便可:
html {font-size: 60px!important;}
[Number] lib.flexible.dpr
當前頁面的dpr值
[Number] lib.flexible.rem
當前頁面的rem基準值
[Number|String] lib.flexible.rem2px([Number|String digital])
把rem轉換爲px
[Number|String] lib.flexible.px2rem([Number|String digital])
把px轉換爲rem
lib.flexible.refreshRem()
刷新當前頁面的rem基準值
<script src="http://g.tbcdn.cn/mtb/lib-flexible/{{version}}/makegrid.js"></script>
lib.flexible.makeGrid(params)
經過傳入視覺的柵格規範定義,能夠輸出對應的css樣式。
lib.flexible.makeGridMode(modeName)
方案還預置了幾個默認的柵格規範,分別是750-12
,750-6
,640-12
,640-6
。
<meta content="designWidth=750, desginUnit=6, columnCount=12, columnXUnit=7, gutterXUnit=3, edgeXUnit=4" name="grid" />
或
<meta content="modeName=750-12" name="grid" />
<div class="grid"> <div class="col-4"></div> <div class="col-4"></div> <div class="col-4"></div> </div> <div class="grid"> <div class="col-6"></div> <div class="col-6"></div> </div> <div class="grid"> <div class="col-3"></div> <div class="col-4"></div> <div class="col-5"></div> </div>