关于移动端样式自适应方案尝试

本文介绍了如何通过使用rem单位及postcss-px-viewport插件实现移动端设备的自适应布局,详细展示了设置base字体大小的方法,并提供了实际使用的代码示例。

现在移动端设备千差万别,用一套样式已经很难满足需求,先从简单的样式大小类说起,小屏手机整体偏小,大屏样式整体偏大,即根据屏幕大小自适应调整整体样式的大小。

第一反应,用rem,给定一个base,这个base(一般是指html的font-size值)在程序最开始,根据屏幕大小设定好,剩下的样式大小设置都是根据这个base转化成对应rem值,那么所有的样式也就基本达到自使用了,给出一段设置base的js代码(基于14px设计)

window.onload = () => {
      var html = document.documentElement
      var width = html.getBoundingClientRect().width
      html.style.fontSize = width * 14 / 375 + 'px'
      console.log('width', width)
    }

当然自己每次算rem也是头疼,sublime有一个插件cssrem,可以设定好后,直接给到px值就能转化成rem。

之后发现有一个插件postcss-px-viewport,webpack类打包工具中配置后设计的初始值,它将自动根据屏幕的大小,生成对应比例的样式,所有的样式只需按设计初始值给出,就用对应px不需要转换。

 module: {
    loaders: [
    {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          postcss: [
            require('postcss-px-to-viewport')({ // 根据屏幕大小转换样式
              viewportWidth: 375
            }),
            require('autoprefixer')({ // 为样式自动添加前缀
              browsers: ['last 3 versions']
            })
          ]
        }
      }
    ]
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值