当前位置: 首页 > wzjs >正文

网站备案号示例百度指数官网入口

网站备案号示例,百度指数官网入口,政府网站设计风格,wordpress网站手机端在 Vue 3 Vite 项目中使用 postcss-pxtorem 自动将 px 单位转换为 rem 单位,可以按照以下步骤配置: 一、基础版本 1. 安装依赖 首先安装必要的插件: npm install postcss postcss-pxtorem autoprefixer -D # 或 yarn add postcss postcs…

在 Vue 3 + Vite 项目中使用 postcss-pxtorem 自动将 px 单位转换为 rem 单位,可以按照以下步骤配置:

一、基础版本

1. 安装依赖

首先安装必要的插件:

npm install postcss postcss-pxtorem autoprefixer -D
# 或
yarn add postcss postcss-pxtorem autoprefixer -D

2. 在vite.config.ts中引入并配置

  css: {preprocessorOptions: {
//less配置,不需要注释掉less: {math: "always", // 括号内才使用数学计算globalVars: {// 全局变量mainColor: "red",},},},postcss: {plugins: [postcssPxtorem({rootValue: 37.5, // UI设计稿的宽度/10unitPrecision: 3, // 转rem精确到小数点多少位propList: ["*"], // 需要转换的属性 *表示所有selectorBlackList: ["ignore"], // 不进行px转换的选择器replace: true, // 是否直接更换属性值,而不添加备用属性mediaQuery: false, // 是否在媒体查询的css代码中也进行转换minPixelValue: 0, // 设置要替换的最小像素值exclude: /node_modules/i, // 排除node_modules文件夹下的文件}),autoprefixer,],},},

3. 创建一个rem.js文件 内容如下,再在入口文件中去引入该文件

// 判断是否是PC端
const isPc = !/Android|iPhone|SymbianOS|Windows Phone|iPad|iPod/i.test(navigator.userAgent
);
// 设置基础根文件大小
let baseSize = 37.5;
// rem 函数
function setRem() {const clientWidth = document.documentElement.clientWidth;// 设计稿一般都是以375的宽度let scale = clientWidth / (baseSize * 10);// 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)let enlarge = 1.5;if (isPc) {enlarge = 1;scale = clientWidth / 980; // 980 是PC端设计稿的宽度}document.documentElement.style.fontSize =baseSize * Math.min(scale, enlarge) + "px";
}
// 调用方法
setRem();// 监听窗口在变化时重新设置跟文件大小
window.onresize = function () {setRem();
};export default {};

4. 在main.js中引入

import { createApp } from "vue";
import "./style.css";
import App from "./App.vue";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import router from "./router/index";
import "mapbox-gl/dist/mapbox-gl.css";
import "./utils/rem";
const app = createApp(App);app.use(ElementPlus);
app.use(router);
app.mount("#app");

二、详细版本

1. 安装依赖

首先安装必要的插件:

npm install postcss postcss-pxtorem autoprefixer -D
# 或
yarn add postcss postcss-pxtorem autoprefixer -D

2. 配置 postcss.config.js

在项目根目录创建或修改 postcss.config.js 文件:

module.exports = {plugins: {'postcss-pxtorem': {rootValue: 16, // 基准值(1rem = 16px)propList: ['*'], // 需要转换的属性,*表示所有selectorBlackList: ['.el-'], // 忽略包含.el-的class(不转换Element Plus样式)minPixelValue: 2 // 小于2px不转换},autoprefixer: {} // 自动添加浏览器前缀}
}

3. 修改 vite.config.ts

确保 Vite 已启用 PostCSS:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],css: {postcss: {// 自动读取postcss.config.js}}
})

4. 动态设置基准值(可选)

main.ts 中设置 HTML 根字体大小(通常基于设计稿宽度):

// 根据设计稿调整(设计稿宽度/10)
function setRemUnit() {const docEl = document.documentElementconst ratio = docEl.clientWidth / 1920 // 1920是设计稿宽度docEl.style.fontSize = 16 * Math.min(ratio, 2) + 'px' // 限制最大缩放
}setRemUnit()
window.addEventListener('resize', setRemUnit)

5. 注意事项

  1. Element Plus 适配

    • 通过 selectorBlackList 忽略 Element 组件样式
    • 或单独配置 Element 的 rem 比例
  2. 样式写法

    /* 转换前 */
    .dialog-wrapper {width: 240px;padding: 12px;
    }/* 转换后(假设rootValue=16) */
    .dialog-wrapper {width: 15rem;padding: 0.75rem;
    }
    
  3. 开发环境检查

    • 确认转换生效:检查浏览器开发者工具中的最终样式
    • 可以通过 /* px-to-viewport-ignore-next */ 注释跳过特定行的转换

完整配置示例

// postcss.config.js
module.exports = {plugins: {'postcss-pxtorem': {rootValue: 16,propList: ['*', '!border*'], // 不转换border相关属性exclude: /node_modules\/element-plus/ // 忽略element-plus},autoprefixer: {overrideBrowserslist: ['last 2 versions']}}
}

这样配置后,项目中的 px 单位会自动转换为 rem,实现响应式布局。设计稿测量值可以直接写 px,编译时会自动计算 rem 值。


注意事项

  1. 热更新问题
    修改PostCSS配置后需重启dev server

  2. 单位混合警告
    避免出现 calc(100px + 2rem) 这种混合单位写法

  3. 第三方库兼容
    对使用固定px的库(如地图组件),需通过 selectorBlackList 排除

  4. VS Code提示
    安装 PostCSS Language Support 插件获得代码提示


通过以上配置,您的项目将实现:

  • 精准的px到rem转换
  • 完美的Element Plus组件兼容
  • 响应式的布局适配
  • 高效的开发调试体验
http://www.dtcms.com/wzjs/87154.html

相关文章:

  • 济南移动网站制作谷歌推广公司哪家好
  • 2015做网站前景舆情信息在哪里找
  • 大型的网站建设公司适合奖励自己的网站免费
  • 网站开发的资料设备电商平台运营方案
  • 网站策划建设方法北京百度seo服务
  • 石家庄网站建设制作明星百度指数排行
  • 触屏手机网站私人浏览器
  • 西宁市城中区建设局网站营销网
  • 怎么做一个简易网站南宁seo结算
  • 上海广告网站建设快速排名优化推广手机
  • 做微博长图的网站品牌运营管理公司
  • 灵犀科技网站建设win7优化大师
  • 企业网站建设需要哪些软件柳州网站建设哪里有
  • 浙江金华网站建设整合营销活动策划方案
  • seddog站长之家浙江网络推广公司
  • 网站建设如何做用户名密码宁波网络推广seo软件
  • 上海网站建设 微信开发公司b站软件推广大全
  • 国外做饰品批发网站seo工具是什么意思
  • 做商城的网站程序西点培训学校
  • 湖南网站开发哪家好百度账号快速注册入口
  • 网站seo的关键词排名怎么做的外链seo推广
  • 为什么招聘网站不能用自己做的简历搜狗营销
  • 这几年做啥网站致富外贸seo推广公司
  • 平面设计网址推荐手机端关键词排名优化软件
  • 泸州百度做网站联系北京seo关键词排名
  • 二进制可以做网站是吗如何建网站要什么条件
  • 临清做网站搜索广告优化
  • 做公司网站需要多长时间公司网站建设需要多少钱
  • 网站建设总结报告小红书软文案例
  • 云梦建站百度指数官网查询入口