前端适配方案

前端适配了解

设备像素比

设备像素比 = 物理像素 / css逻辑像素

Dpr 是 1 时,代表用一个物理像素渲染一个css像素。

Dpr 是 2 时,代表用四个物理像素渲染一个css像素,水平和垂直方向各用两个物理像素渲染一个逻辑像素。

因此同等分辨率的情况下,dpr更高显示效果越细腻。

分辨率

分辨率 = 水平物理像素 * 垂直物理像素

css逻辑分辨率 = 物理分辨率 / 设备像素比

同等分辨率的情况,设备像素比越高,css逻辑分辨率越低,相同的css像素占据更多物理空间,视觉效果偏大。

成本低就是用meta标签,当然也不是所有场景都适用。

移动端适配方案vw配合rem

先将页面整屏切割成10份,多少份都可以,以10份为例

理念:元素大小是相对屏幕宽度的,元素占了屏幕多少份。

代码方案:根元素设置fontSize,用postcss-pxtorem进行转换

优点:开发影响小,适用于现代浏览器,且不受dpr影响。

缺点:产品如果不想要等比缩放,那么该方案不适用。

方案衍生

  • 根元素计算fontSize配合插件转rem,但计算需考虑dpr影响,适用于需兼容低版本浏览器。
  • 方案根本其实就是将元素计算成屏幕占比,那么也可以直接配合插件直接转vw实现适配方案。

百分比适配方案

每个元素依据包含块的尺寸进行百分比样式设置。

成本比较高,需要对不同css属性百分比属性值熟悉。

scale缩放

使用页面需整体缩放且保持一定宽高比,比如视频和图片。

js 复制代码
  const objectFitContainerStyle = useMemo(() => {
    const { width, height } = containerSize;
    return {
      transform: `scale(${width / height > 16 / 9 ? height / 1080 : width / 1920})`,
    };
  }, [containerSize]);

媒体查询

用媒体查询适配不同分辨率。

但解决不了dpr的问题,同等物理分辨率但dpr不同,还是会有影响。

相关推荐
Larcher2 小时前
React Router 不只是页面跳转:从 SPA 路由到权限守卫的完整实践
javascript·后端
Larcher2 小时前
大模型为什么每次回答都不一样?一文搞懂 Temperature、Top K 与 Top P
javascript·后端
用户938515635074 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep5 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端5 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
eric-sjq5 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
浮生望5 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
To_OC6 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
90后的晨仔6 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
90后的晨仔6 小时前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端