网页自适应开发

1. 移动端H5适配

    Vue3+Vite 在vite.config.js中配置:可以使用postcss-pxtorem插件配合main.js文件中引入lib-flexible.js,实现移动端的自适应。

npm install lib-flexible
npm install postcss-pxtorem
// vite.config.js
// 省略代码
css: {
    postcss: {
        plugins: [
          require('postcss-pxtorem')({
            rootValue: 50,
            propList: ['*'],
            selectorBlackList: ['.van-'],
          }),
        ],
      },
    }
// 省略代码
/***
    参数说明
    rootValue: 36, // 表示根元素字体大小或根据input参数返回根元素字体大小
    propList: ['*'], // 可以从px更改为rem的属性, 通配符*表示启用所有属性
    selectorBlackList: ['.van-'] // 过滤掉.van-开头的class,不进行rem转换
*/

2. 大屏适配(相同)

        与上面的移动端H5适配可以看做是同一种,只是使用的转化插件不一样(个人感觉移动端将px转换为rem,大屏转换为vw/vh更合适)    

        Vue3+Vite 在vite.config.js中配置:可以使用postcss-px-to-viewport插件实现,实现px到vw的转换,实现自适应。

// vite.config.js的配置文件(部分代码)

css: {
        postcss: {
          plugins: [
            postcssPxToViewport({
              viewportWidth: 1366  // 设计稿的视口宽度  
            })
          ]
        }
      }

      /**
       * unitToConvert: 'px', // 需要转换的单位,默认为"px"
        viewportWidth: 1920, // 设计稿的视口宽度
        unitPrecision: 5, // 单位转换后保留的精度
        propList: ['*'], // 能转化为vw的属性列表
        viewportUnit: 'vw', // 希望使用的视口单位
        fontViewportUnit: 'vw', // 字体使用的视口单位
        selectorBlackList: [], // 需要忽略的CSS选择器,不会转为视口单位,使用原有的px等单位
        minPixelValue: 1, // 设置最小的转换数值,如果为1的话,只有大于1的值会被转换
        mediaQuery: false, // 媒体查询里的单位是否需要转换单位
        replace: true, //  是否直接更换属性值,而不添加备用属性
        exclude: undefined, // 忽略某些文件夹下的文件或特定文件,例如 'node_modules' 下的文件
        include: undefined, // 如果设置了include,那将只有匹配到的文件才会被转换
        landscape: false, // 是否添加根据 landscapeWidth 生成的媒体查询条件 @media (orientation: landscape)
        landscapeUnit: 'vw', // 横屏时使用的单位
        landscapeWidth: 1920 // 横屏时使用的视口宽度
       */


3. 桌面端PC适配

    主要可参考Bootstrap的响应式布局预设的五中布局来实现(xs,sm,md,lg,xl) 使用 row 和 col 布局,配合flex布局实现。

    xs  <768px   => 超小屏 手机
    sm  ≥768px   => 小屏幕 平板
    md  ≥992px   => 中等屏幕 桌面显示器
    lg  ≥1200px  => 大屏幕 大桌面显示器
    xl  ≥1920px  => 超大屏幕(2k)

    网页的一部分移动端和PC端判断时可以用document.body.clientWidth 与 700 来判断
    小于 700 表示手机端(解决移动端样式问题)
    大于 700 表示PC端(解决PC端样式问题)


 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackStar-Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值