移动端开发单位——rem,动态使用

移动端开发-大纲


1、移动web开发和适配

一、特色:

跑在手机端的web页面(H5页面)、 跨平台、基于webview、告别IE拥抱webkit、更高的适配和性能要求
小技巧:在调试窗口中,选中“computed -> Show all”,就会显示标签元素的所有样式。

图片描述

二、常见的移动web适配方法:

  • 定高,宽度百分比
  • flex布局 <响应式布局>
  • Media Query(媒体查询) <响应式布局>

(1)、Media Query(媒体查询)css

@media 媒体类型 and (媒体特性){
        /*css样式*/
    }   

    //媒体类型:screen , print....
    //媒体特性:max-width , max-height....

(2)、js配置跟页面字体大小html

//在index.html中配置根元素字体大小
<script>
     //获取视窗宽度:兼容不一样移动端设备获取设备宽度
    let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
    //获取视窗根元素
    let htmlDom = document.getElementsByTagName("html")[0];
    //设置根元素字体大小
    htmlDom.style.fontSize = htmlWidth / 10 + "px";
</script>

2、移动端实战

一、经过sass语法中function函数自动将px转为rem

//a.scss文件
//以iPhone6屏幕尺寸为例,转化获得的1rem = 37.5px;
@function rem2px($px) {
  $rem: 37.5px;
  @return ($px / $rem) + rem;
}
.a {
  font-size: rem2px(37.5px);
}

//转化为a.css文件以下:
.a {
  font-size: 1rem; 
  }
前提:安装node-sass来编译scss文件为css文件。

二、实战DEMO【移动端使用此方法便可】

(1)、生成项目node

npm init
项目结构:

图片描述

(2)、根据package.json文件,安装以下包:webpack

图片描述

(3)、根目录下增长webpack.conf.js文件:web

var webpack = require("webpack");
var path = require("path");
module.exports = {
  entry: "./app.js",
  output: {
    path: path.resolve(__dirname, "./build"),
    filename: "bundle.js"
  },
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: ["style-loader", "css-loader", "sass-loader"]
      },
      {
        test: /\.(png|jpg)$/,
        use: [
          {
            loader: "url-loader",
            options: {
              limit: 1024
            }
          }
        ]
      }
    ]
  }
};

(4)、根目录下增长app.jsnpm

require("./index.scss");
//动态配置根元素的font-size数值
let htmlWidth =
  document.documentElement.clientWidth || document.body.clientWidth;
let htmlDom = document.getElementsByTagName("html")[0];
htmlDom.style.fontSize = htmlWidth / 10 + "px";
console.log(htmlDom.style.fontSize);

(5)、index.scss文件中修改样式json

//使用sass的function函数自动转换px为rem
//`这里以iPhone6的UI尺寸配置`
@function px2rem($px) {
  $rem: 37.5px;
  @return ($px / $rem) + rem;
}

.header {
  //根据UI图将标识高度值直接传入参数便可
  height: px2rem(40px);   
  }
注意:通常设计师给咱们的UI图中的标识高度是放大一倍的值,因此须要使用 “ height: px2rem(80px/2)”,将高度值除以2在传入参数中。
相关文章
相关标签/搜索