使用rem实现pc、移动端自适应布局

前提

1rem的大小是通过html下的根字体大小(font-size)这个css属性告诉浏览器的。
比如 : 设置html当前font-size = 10px;那么1rem = 10px;

计算公式

1.根据设计稿A(假如设计稿宽度是750),有一个预设的rem和px的比例B(假如是1rem = 10px)
2.获取用户浏览器的可视区域的宽度C(假如是750px),那么他此时1rem的尺寸D 可以根据 B/A = D/C (假设的字体大小/设计稿宽度=实际的字体大小/实际的屏幕宽度)这个公式得知。
10/750 = x/750 ==> x=100px
3.那么,当屏幕大小变化时,就需要取得当前屏幕大小来根据公式计算出此刻font-size大小

var fun = function (document, window) {
	//获取屏幕可视区域宽度
     var deviceWidth = document.documentElement.clientWidth;
    // console.log('deviceWidth', deviceWidth);
    //区分pc端和移动端,根据设计稿宽度计算根字体大小
    if (deviceWidth > 768) {
     //设计稿宽度1920px/实际字体大小100px = 19.20
      document.documentElement.style.fontSize = deviceWidth / 19.20 + 'px';
    } else {
      document.documentElement.style.fontSize = deviceWidth / 7.50 + 'px';
    }
}
fun(document, window);

可以根据设计稿宽度设置,获取到当前屏幕font-size大小,设置到蓝湖上,直接转换为rem进行布局即可。
在这里插入图片描述
在这里插入图片描述
使用媒体查询进行区分样式,使用rem书写样式 即可
在这里插入图片描述

如果想要在窗口大小发生变化时同步放大缩小,可使用window.onresize监听:

  window.onresize = () => {
    var deviceWidth = document.documentElement.clientWidth;
    if (deviceWidth > 768) {
      //设计稿宽度1920px/实际字体大小100px = 19.20
      document.documentElement.style.fontSize = deviceWidth / 19.2 + "px";
    } else {
      document.documentElement.style.fontSize = deviceWidth / 3.75 + "px";
    }
  };
### 软件测试面试八股文概述 软件测试领域竞争日益激烈,尤其是对于普通测试岗位而言,求职者数量庞大。为了帮助准备进入这一领域的候选人更好地应对挑战,《软件测试面试八股文》应运而生[^1]。 #### 主要内容覆盖范围 该资料涵盖了多个方面的知识点,具体包括但不限于: - **数据和数据库完整性测试** - **功能测试** - **用户界面测试** - **性能评测** - **负载测试** - **强度测试** - **容量测试** - **安全性和访问控制测试** - **故障转移和恢复测试** - **配置测试** - **安装测试** - **加密测试** - **可用性测试** - **版本验证测试** - **文档测试** 这些主题几乎囊括了软件开发生命周期中的所有重要环节,旨在全面评估候选人的技术能力和实践经验[^2]。 #### 准备策略建议 针对上述各个方向的内容,考生应当深入理解其原理和技术细节,并能够灵活应用于实际场景中解决问题。此外,在团队协作方面,合理安排人力资源并制定详细的测试方案也是不可忽视的部分。例如,在启动新项目时,项目经理会先梳理基本信息再依据成员技能水平指派相应任务,确保每个人都能高效完成各自部分的工作[^3]。 ```python def prepare_for_interview(): topics = [ "data_and_database_integrity", "functionality_testing", "UI_testing", # ...其他测试类别... ] for topic in topics: study(topic) practice_real_world_scenarios() collaborate_with_team_members_effectively() prepare_for_interview() ``` 通过系统化的复习以及实战演练,可以有效提升个人竞争力,增加获得理想职位的机会。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值