設備像素比 = 物理像素 / 設備獨立像素
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
# 阿里CDN引入 <script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script> # 下載對應的文件,直接在頁面中引入。 # 固然也能夠 npm i -S amfe-flexible
# 動態改寫<meta>標籤#
給<html>元素添加data-dpr屬性,而且動態改寫data-dpr的值#
給<html>元素添加font-size屬性,而且動態改寫font-size的值
var metaEl = doc.createElement('meta'); var scale = isRetina ? 0.5:1;metaEl.setAttribute('name', 'viewport'); metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); if (docEl.firstElementChild) { document.documentElement.firstElementChild.appendChild(metaEl); } else { var wrap = doc.createElement('div'); wrap.appendChild(metaEl); documen.write(wrap.innerHTML); }
1vw = window.innerWidth 的 1%
# grunt npm install grunt-postcss --save-dev #webpack npm install postcss-loader --save-dev
module.exports = function(grunt) { grunt.initConfig({ postcss:{ options:{ // 配置postCSS所需插件 processors:[ // 這是postCSS插件 // 自動添加前綴 require('autoprefixer'), // 適配方案 require('postcss-px-to-viewport')({ viewportWidth: 750, viewportHeight: 1670, unitPrecision: 5, viewportUnit: 'vw', selectorBlackList: [], minPixelValue: 1, mediaQuery: false }) ] }, dist:{ // 設置CSS的源文件和postCSS編譯後的CSS文件 src: 'src/style.css', // 源文件 dest: 'dest/style.css' // 輸出文件 } } }); grunt.loadNpmTasks('grunt-postcss'); }
module: { loaders: [ { test: /\.css$/, // 若是使用了 ExtractTextPlugin loader: ExtractTextPlugin.extract('style', 'css!postcss') // 不然 // loader: "style-loader!css-loader!postcss-loader" } ] }, // 固然,你也能夠在根目錄下設置.postcssrc.js中添加對postCSS的配置,會自動識別。 postcss: function () { return [ // 裏面是咱們要用的插件 // 自動添加前綴 require('autoprefixer'), // 適配方案 require('postcss-px-to-viewport')({ viewportWidth: 750, viewportHeight: 1670, unitPrecision: 5, viewportUnit: 'vw', selectorBlackList: [], minPixelValue: 1, mediaQuery: false }) ]; }
// 動態計算px的大小,好比設計稿的尺寸寬是750px (function(dew){ var winW = document.documentElement.clientWidth; var ratio = winW/desW; document.documentElement.style.fontSize = ratio * 100 + 'px'; })(750); //在css中對根字體大小進行設置: // html,body{ // font-size:100px; // } // 這樣咱們在對UI給的尺寸直接除以100,就是對應的rem單位了。