【手写一个页面自适应】 媒体查询 布局 视口rem/em

文章介绍了如何实现手写页面自适应字体,通过JavaScript动态设置根元素的font-size,并讨论了流式布局、媒体查询、移动端视口概念以及rem、vw/vh单位在响应式设计中的应用。同时提到了阿里团队的flexible.js作为自适应解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手写的一个页面自适应字体

只需要引入这个JavaScript文件就行。文末有更好的自适应方法。

// 手动写页面自适应字体
window.onload = function () {

    function screenResize() {
    // 拿到屏幕宽度
    var html = document.documentElement;
    // 计算font-size 大小,此处的100是指想要100px大小的font-size大小
    var fontSize = html.clientWidth * 100 / 750;
    // 设置根元素 font-size 大小
    html.style.fontSize = fontSize + 'px';
    document.body.style.fontSize = "0.2rem"
    }

    // 页面初始化调用
    screenResize()

    // 监测页面宽度发生变化
    window.onresize = function () {
    screenResize()
    }
}

一、布局介绍

流式布局 =》 百分比布局 所有的东西都采用百分比完成

<div style="width:25%">
</div>

媒体查询 rem em vw/vh

布局只是一种手段 不要被他束缚

布局的目的就是 =》 将设计稿 完美 展现在PC端 移动端 有一定的兼容性

详细在后期

二、移动端项目

一般 在开发者工具中查看

视口(移动端)

视口是可见区域 显示的区域 实际上就是 移动端屏幕除去 UI外的可见范围

布局视口 实际所占空间大小的区域 PC端分辨率大于 移动端 移动端会出现溢出(出现滚动条)

​ 浏览器默认计算布局视口大小是 980px 此刻 100% === 980px

视觉视口 肉眼可见的窗口就是视觉视口 不算滚动条部分

理想视口 页面可以正常在视觉视口内完美展示 且不会出现滚动条 视觉视口 === 布局视口

<meta name="viewport" content="width=device-width, initial-scale=1.0">

viewport 视口

content 设置的内容

width=device-width 宽度等于设备宽度 设置理想视口

initial-scale=1.0 设置初始的缩放比例 默认值 1.0 可以设置成其他的

minimum-scale=1.0 允许用户可操作的最小缩放比例 默认 1.0

maximum-scale=1.0 允许用户可操作的最大缩放比例 默认 1.0

user-scalable=no|yes 是否允许用户缩放 默认值是no
一般情况下不允许用户缩放页面 会对我们的页面造成问题

物理像素 逻辑像素 逻辑像素比

物理像素(硬件) 设备屏幕的像素值 实际像素(设备宽高上面的像素点个数)

​ 480P 720P 1080P 2K 4K

分辨率 水平方向 以及竖直方向上的像素点

​ 1920 1080 2520 1680

逻辑像素 是一种视觉效果 可以认为是一个像素上有多少个发光点

​ iPhone 6/7/8 物理分辨率 375 逻辑分辨率 750

​ 也就是说 其一个物理像素上有两个发光点

我的世界 像素块 一张脸 用8块像素 用720像素

逻辑像素比 物理像素与逻辑像素之比

​ iPhone 6/7/8 物理分辨率 375 逻辑分辨率 750

​ 逻辑分辨率 / 物理分辨率 = 2

逻辑像素比dpr = 2

一个像素块有两个发光点

设计稿宽度 等于 逻辑像素宽度

实际开发的时候 设计人员喜欢将设计稿设计为 750 他的物理像素是375 dpr = 2

dpr 值越大越清晰 越小越模糊 是一个整数 向下取整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李桥桉

支持一下作者

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

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

打赏作者

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

抵扣说明:

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

余额充值