vue 动态适配宽高 echarts适配自适应字体字号

vue 动态适配宽高 echarts适配自适应字体字号

工具autoFontSize.js

export function autoFontSize(res) {
    let clientWidth =
        window.innerWidth ||
        document.documentElement.clientWidth ||
        document.body.clientWidth;
    if (!clientWidth) return;
    // 此处的3840 为设计稿的宽度,记得修改!
    let fontSize = clientWidth / 3840;
    return res * fontSize;
},

项目中使用

  • main.js中全局使用
import { autoFontSize } from "@/utils/autoFontSize.js";
Vue.prototype.$autoFontSize = autoFontSize;
  • echarts中使用
yAxis: [
    {
        type: "value",
        nameTextStyle: {
            fontSize: this.$autoFontSize(24),
        },
        axisLabel: {
            textStyle: {
                color: "#ffffff",
                fontSize: this.$autoFontSize(28),
            },
        },
    },
],
  • el-table中使用
<el-table-column type="index" label="序号" :width="this.$autoFontSize(140)"></el-table-column>
### Vue PC端分辨率适配与响应式布局 在Vue项目中实现PC端不同分辨率的适配,通常采用基于`vw/vh/rem`单位的设计方案以及通过媒体查询(Media Query)来调整样式。以下是具体方法: #### 1. 使用 `vw` 和 `vh` 实现视口比例适配 `vw` 和 `vh` 是 CSS 中用于表示视口的相对单位,分别代表视口度和度的百分之一[^1]。例如,在设计稿为 1920×1080 的情况下,可以通过以下方式定义元素大小: ```css .container { width: 50vw; /* 容器度占屏幕度的一半 */ height: 30vh; /* 容器度占屏幕度的三成 */ } ``` 对于需要照顾全屏显示的大屏场景,可以直接利用 `vh` 来动态适应浏览器窗口的度变化。 #### 2. 利用 `rem` 动态设置字体大小 为了使页面中的文字能够随着设备分辨率的变化而自适应,可以在项目的入口文件(如 `main.js` 或 `index.html`)中引入一个脚本文件(如 `rem.js`),动态计算并更新根节点的 `font-size` 属性[^1]。这样所有的子级元素都可以继承这个基础字号,并通过 `em` 或 `rem` 单位进行进一步的比例设定。 #### 3. 配置 PostCSS 插件自动转换 px 至 vw 安装 `postcss-px-to-viewport` 并配置其参数可以帮助开发者更效地完成从固定像素到灵活视窗单位的转变过程[^3]: ```bash npm install postcss-px-to-viewport --save-dev ``` 接着创建或者修改现有的 `postcss.config.js` 文件内容如下所示: ```javascript module.exports = { plugins: { 'postcss-px-to-viewport': { unitToConvert: 'px', viewportWidth: 1920, unitPrecision: 5, propList: ['*'], viewportUnit: 'vw', fontViewportUnit: 'vw' } } }; ``` #### 4. 应用 Media Queries 处理特殊断点情况 尽管使用了上述技术手段可以让大部分界面元素具备良好的伸缩能力,但在面对极端尺寸差异时仍需借助于媒体查询来进行额外优化处理[^2]。比如针对常见的几种桌面显示器规格制定相应的规则集: ```css /* 普通液晶显示器 */ @media only screen and (max-width: 1366px) {} /* 清液晶显示器 */ @media only screen and (min-width: 1920px) {} ... ``` 以上就是关于如何在 Vue 项目里做好 PC 端跨分辨率支持的一些基本思路和技术要点介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码工人笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值