最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题

    正文概述 掘金(smalll)   2021-08-16   926

    前言

    最近学习了很多新东西,所以迫不及待的想分享给大家,知道此技术的同学可以不用看哦,此篇文章主要针对第一次了解此技术的同学,俗话说 最好的学习方法就是教会他人 ,所以我希望能跟大家一起学习,一起成长!

    1. 安装与使用lib-flexible

    1.1 lib-flexible的作用

    lib-flexible是淘宝项目组开发出来的一个插件,它会根据屏幕大小为页面自动添加标签,动态控制initial-scale,maximum-scale,minimum-scale等属性的值。让我们可以根据设计图的px尺寸计算相应的rem值,从而使得页面根据屏幕大小自动适配。

    1.2 lib-flexible的安装与使用

    npm install lib-flexible --save
    

    安装完成后,在项目的入口main.js文件中引入lib-flexible

    import 'lib-flexible'
    

    1.3 注意事项

    由于lib-flexible会动态给页面header中添加meta标签,所以最好把目录 public/index.html 中的这个标签删除或注释!

    vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题

    1.4 完成效果

    vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题 此时我们会发现html标签上多了个style属性,这个值就是屏幕的动态缩放比,它会随着屏幕的尺寸变换而动态的变换。

    2. 安装与使用postcss-px2rem

    2.1 postcss-px2rem的作用

    postcss-px2rem会将你写的px值转换为对应的rem,rem单位用于适配不同宽度的屏幕,它是根据标签的font-size值来计算出结果的,1rem=html标签的font-size值。

    2.2 postcss-px2rem的安装与使用

    npm install postcss-px2rem --save-dev
    

    安装完成后,在vue.config.js(项目创建完初始是没有这个js文件的,需要自己手动创建)中配置如下代码:

    module.exports = {
        css: {
            loaderOptions: {
                css: {},
                postcss: {
                    plugins: [
                        require('postcss-px2rem')({
                            remUnit: 75   //只需要改此处的数值
                        })
                    ]
                }
            },
        }
    }
    

    上述代码中你只需要改一处地方即可,即remUnit的值。remUnit这个配置项的数值是根据设计图来定这个值,假如设计图给的宽度是750,那我们就会把remUnit设置为75(设计图宽度的十分之一),如果是375,那就写37.5。

    配置完成后,我们就可以直接根据设计图上的px值进行正常开发了,设计图上的px值是多少,代码里就写多少。 完成后的效果如下图:

    vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题

    vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题

    vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题 我们可以发现,随着屏幕的尺寸变化,该图片元素的大小也随之发生了变化,但是相对应得rem值是没有发生改变的,因为rem值是根据html根元素的font-size值来动态计算的,也是相对单位,所以不会发生改变。

    3. 如何解决第三方组件库样式冲突问题

    当我们引入第三方组件库时,会发现组件的样式受到了影响,所有组件的单位都变成了rem,组件也会随着屏幕大小改变而改变,那是因为第三方组件库没有兼容px2rem,如果这正是我们所希望的,那就不需要做任何操作即可正常使用;但一般而言,我们都不希望组件库中的样式会受到影响。

    解决方案如下:

    一、将之前vue.config.js中配置的postcss-px2rem代码块注释掉

    vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题

    二、安装postcss-px2rem-exclude

    npm  install postcss-px2rem-exclude --save
    

    三、在根目录下新建 postcss.config.js 文件,然后配置以下代码

    module.exports = {
        plugins: {
            autoprefixer: {},
            "postcss-px2rem-exclude": {
                remUnit: 75,
                exclude: /node_modules|folder_name/i
            }
        }
    }
    

    此插件的功能是为了排除 node_modules 中的所有第三方插件,所以第三方组件库的样式就不会被受到影响。

    以上就是全部内容,此方法能让我们在开发移动端应用程序变得更加方便与快捷,自己动手试试吧!


    起源地下载网 » vue中实现移动端页面自适应(flexible&px2rem)以及解决第三方组件库样式冲突问题

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元