平板网页开发,px vs rem + 适配方案

  • 必须做适配,优先用 rem /em/vw 做弹性布局,px 只用于边框、阴影等不需要缩放的细节,纯 px 写死绝对不推荐。

一、先搞懂两个单位的区别

1. px(固定像素)

  • 绝对单位,写多少就是多少,不会随屏幕 / 字体大小变化
  • 适合:边框、1px 细线、阴影、图标固定大小
  • 缺点:平板横屏 / 竖屏、不同尺寸平板(7 寸 / 10 寸 / 12 寸)会拉伸变形、文字忽大忽小、布局错乱

2. rem(相对根节点字体大小)

  • 相对单位:1rem = html 标签的 font-size
  • 核心优势:一套代码适配所有平板 / 手机 / PC,自动等比缩放
  • 适合:文字、间距、宽高、padding、margin 等所有核心布局

方案:rem + 动态根字体(最稳、最通用)

1. 核心适配逻辑

设计稿宽度(比如 768px 平板设计稿)为基准,自动计算 html 的 font-size,所有元素用 rem 写。

2. 开箱即用适配代码(直接复制到项目,vue项目直接放在index.html中)

复制代码
<script>
      // 移动端 / 平板自适应适配(基准 16px,与 Tailwind rem 单位对齐)
      (function flexible(window, document) {
        const docEl = document.documentElement
        const designWidth = 768 // 平板设计稿宽度

        function setRemUnit() {
          let clientWidth = docEl.clientWidth
          // 限制最小/最大宽度,避免 PC 端过大
          clientWidth = Math.max(375, Math.min(clientWidth, 1200))
          // 基准:1rem = 16px(设计稿上量多少,直接 ÷16 就是 rem)
          docEl.style.fontSize = (clientWidth / designWidth) * 16 + 'px'
        }
        setRemUnit()
        window.addEventListener('resize', setRemUnit)
        window.addEventListener('pageshow', setRemUnit)
      })(window, document)
    </script>

3. 使用方式(超级简单)

  • 设计稿量出来:宽度 320px → 写 20rem
  • 设计稿字体:32px → 写 2rem
  • 边框 / 细线:直接用 px
  • tailwind ,也可以搭配tailwind用
相关推荐
尾善爱看海4 分钟前
Vue 面试进阶篇:Composition API、插槽、自定义指令……8 个章节 + 高频面试题全解析
前端·javascript·vue.js·面试·vue
A13345551 小时前
Windows/Mac/电脑播放器推荐:全平台怎么选
macos·电脑
明耀2 小时前
vue chart 强行刷新高度,宽度
vue
赖赖-3 小时前
工业一体机在机器人领域的应用:从控制架构到场景选型的全面解读
ai·架构·机器人·电脑
RoboWizard3 小时前
游戏电脑不装固态硬盘会怎么样?
游戏·电脑
kakakahahahaha4 小时前
Windows DRIVER_IRQL_NOT_LESS_OR_EQUAL NETIO.SYS 蓝屏排查流程
windows·电脑·笔记本电脑·内容运营·软件需求
不爱学英文的码字机器4 小时前
让 Live2D 角色真正开始对话:Open-LLM-VTuber 从本地部署到远程访问
服务器·opencv·微信·电脑
李永奉13 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
YWL14 小时前
OpenLayers弹窗Overlay深度实战
前端·vue·openlayers
YWL15 小时前
OpenLayers+ECharts联动:地图点击联动图表,数据可视化大屏方案
前端·信息可视化·vue·echarts·openlayers