vue屏幕自适应

1.安装依赖

依赖项:
			"postcss": "^8.4.38",
			"postcss-loader": "^3.0.0",
			"px2rem-loader": "^0.1.9",
			"lib-flexible-computer": "^1.0.2",

2.添加flexible文件

;(function flexible(window, document) {
  var docEl = document.documentElement
  var dpr = window.devicePixelRatio || 1

  // adjust body font size
  function setBodyFontSize() {
    if (document.body) {
      document.body.style.fontSize = 12 * dpr + 'px'
    } else {
      document.addEventListener('DOMContentLoaded', setBodyFontSize)
    }
  }

  setBodyFontSize()

  // set 1rem = viewWidth / 10
  function setRemUnit() {
    var rem = docEl.clientWidth / 10
    docEl.style.fontSize = rem + 'px'
  }

  setRemUnit()

  // reset rem unit on page resize
  window.addEventListener('resize', setRemUnit)
  window.addEventListener('pageshow', function(e) {
    if (e.persisted) {
      setRemUnit()
    }
  })

  // detect 0.5px supports
  if (dpr >= 2) {
    var fakeBody = document.createElement('body')
    var testElement = document.createElement('div')
    testElement.style.border = '.5px solid transparent'
    fakeBody.appendChild(testElement)
    docEl.appendChild(fakeBody)
    if (testElement.offsetHeight === 1) {
      docEl.classList.add('hairlines')
    }
    docEl.removeChild(fakeBody)
  }
})(window, document)			

3.main.js配置

//屏幕分辨率适配
import "./utils/flexible";

4.vue.config.js配置

css: {
    loaderOptions: {
      less: {
        // lessOptions: {
        modifyVars: {
          /* less 变量覆盖,用于自定义 ant design 主题 */
          'primary-color': '#664AD8',
          'link-color': '#664AD8',
          'border-radius-base': '4px',
          'layout-color': '#9867f7'
        },
        javascriptEnabled: true
      },
      postcss: {
        plugins: [
          require('postcss-px2rem-exclude')({
            remUnit: 192, // 基准大小,适应于初始化窗口宽度1920,需要自己根据自己需求调整
            exclude: /node_modules/i // 排除对UI组件size的影响,
          })
        ]
      }
      // }
    }
  },

5.成功范例

在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使Vue页面自适应屏幕,您可以使用CSS中的媒体查询和Flexbox布局来实现响应式设计。下面是一些步骤: 1. 在Vue组件的样式部分添加媒体查询,以根据不同的屏幕尺寸应用不同的样式。媒体查询可以根据屏幕宽度或设备特性进行条件判断。例如,以下媒体查询将在屏幕宽度小于等于768px时应用样式: ```css @media (max-width: 768px) { /* 样式规则 */ } ``` 2. 使用Flexbox布局来实现页面的自适应。Flexbox可以使元素在容器中自动填充可用空间,并根据需要进行换行或缩放。在Vue组件的模板部分,使用Flexbox属性来控制元素的布局。例如,以下代码将在父容器中使用Flexbox布局,并使子元素平均分布在水平方向: ```html <div class="container"> <div class="item"></div> <div class="item"></div> <div class="item"></div> </div> ``` ```css .container { display: flex; justify-content: space-between; } ``` 3. 使用CSS单位来调整元素的尺寸和间距。相对单位(如百分比)可以根据屏幕尺寸进行自适应调整。另外,可以使用CSS的`@media`规则和`min-width`、`max-width`属性来定义不同屏幕尺寸下的样式。例如,以下代码将在屏幕宽度小于等于768px时将元素宽度设置为100%: ```css @media (max-width: 768px) { .item { width: 100%; } } ``` 通过结合媒体查询、Flexbox布局和CSS单位,您可以实现Vue页面的自适应屏幕效果。根据项目需求和设计要求,您可以调整和定制这些样式规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值