阿里云建设网站,2017网站建设价目表,动漫制作专业就业前景文字,上海资格证报名网站一、基本原理
pc端做自适应可以用rem来实现#xff0c;啥是rem#xff0c;自己百度
二、新建rem.ts文件
// rem等比适配配置文件
// 基准大小
const baseSize 14
// 设置 rem 函数
function setRem () {// 当前页面宽度相对于 1920宽的缩放比例#xff0c;可根据自己需要…一、基本原理
pc端做自适应可以用rem来实现啥是rem自己百度
二、新建rem.ts文件
// rem等比适配配置文件
// 基准大小
const baseSize 14
// 设置 rem 函数
function setRem () {// 当前页面宽度相对于 1920宽的缩放比例可根据自己需要修改。这里的1920是设计图的宽度const scale document.documentElement.clientWidth / 1920;// 设置页面根节点字体大小document.documentElement.style.fontSize baseSize * scale px;
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.addEventListener(resize,(){setRem()
})这个文件可以根据屏幕大小来设置根节点字体的大小记住这里的baseSize然后在main.ts文件中引入
三、安装postcss-pxtorem依赖
npm install postcss-px2rem px2rem-loader --save在vite.config.ts文件中引入我这项目用的是vue3 vite ts,你用的是webpack那就在vue.config.js里面
import postCssPxToRem from postcss-pxtorem;
export default defineConfig(({ mode }) {return {plugins: [vue()],css: {postcss: {plugins: [postCssPxToRem({// 自适应pxrem转换rootValue: 14, // 这里不一定要14但必须和rem.ts文件中的baseSize大小一样propList: [*], // 需要转换的属性这里选择全部都进行转换selectorBlackList: [norem], // 过滤掉norem-开头的class不进行rem转换}),],},},resolve: {alias: {// :src 读取当前src在本地的目录: resolve(__dirname, ./src),// HkWebVideoCtrl: resolve(src/assets/js/webVideoCtrl.js),}},server: {host: 0.0.0.0,port: 8000,open: true,},};
})然后就可以直接在css里面使用px了这个依赖会自动把px转换成rem包括ui框架里面的比如elmentui里面的这样全局的css样式都是rem了但是有一个缺陷就是行内元素里面的px不能转换比如 div stylewidth:300px/div,这里的px就转换不了所以还得手动写一个js
// 获取当前屏幕大小与1920的比列,计算大小这里的1920还是看设计图的宽度
export const getScaleByUI (size: number) {const scale document.documentElement.clientWidth / 1920;return size * scale;
}div :style{width:getScaleByUI (300) px}/div但是不建议写在style里面如果ui框架里面的样式用的是style,那就只能用穿透去修改了 这样所有的自适应就搞定了