PC端和移动端如何实现字体适配

简介: PC端和移动端如何实现字体适配

rem与适配

rem介绍:

rem的出现解决了em的计算问题,rem的参照物就是根元素(html)的font-size,这让我们对于不同的页面设置全局标准的成为可能。
大屏幕,可以设置大的字体单位,小屏幕设置小的字体单位。一举解决了百分比定位和flex布局的遗留问题。

**rem优点:做到了“完美适配”**
**rem缺点:只是等比放大,小屏下字体小,大屏下字体大。**

上面是根据高度来确定字体单位,这里可以用宽度来确定字体单位。
  var html = document.getElementsByTagName("html");
  html[0].style.fontSize = document.documentElement.clientWidth/10+"px";

如何确定字体大小?

第一种比较优雅:媒体查询,我们可以用媒体查询看看浏览设备的宽高,然后设置一个合适的字体单位
第二种方法比较精确,那就是用js去算:
body宽度 document.body.clientWidth
body高度 document.body.clientHeight
布局视口宽度 document.documentElement.clientWidth
布局视口高度 document.documentElement.clientHeight
计算方法:
假设:设计稿高度1500px,设计稿中介绍部分高度300px,倒计时字体大小40px,屏幕高度1000px。
  第一步:计算单位:html的font-size = 屏幕高度 / 100 –>10px;
  第二步:介绍部分设置成高度30rem。
  第三步:字体大小设置成4rem。
优点:全局等比放大的适应
这就意味着,你在6plus里面能看的页面,在iphone4里面同样能看,而且不会因为屏幕小而发生元素交叠的情况,也不会因为屏幕大而出现留白的情况。

相关文章
基础运放电路专题
基础运放电路是电子电路中最基础和最常用的电路之一。基础运放电路使用运放(Operational Amplifier,简称Op Amp)作为核心元件,可以实现放大、滤波、积分、微分、比较等多种功能。以下是基础运放电路的专题介绍。 1. 运放的基本概念: 运放是一种高增益、高输入阻抗、低输出阻抗的电子放大器,通常由多个晶体管和电阻等元件组成。运放有两个输入端(正输入端和负输入端)和一个输出端,可以将输入信号放大到输出端并输出。 2. 基础运放电路的分类: 基础运放电路主要包括反馈电路、比较电路、积分电路和微分电路等。其中,反馈电路是最常见的基础运放电路,可以实现放大、滤波、振荡等多种功能。
205 0
|
7月前
|
API Apache Android开发
最受欢迎的三方库之harmony-web
`harmony-web` 是基于鸿蒙 WebView 构建的轻量级库,提供丰富的功能与问题解决方案,简化 WebView 开发。结合 `harmony-utils` 与 `harmony-dialog`,可快速构建高效、易用的鸿蒙应用。支持 ArkWeb 组件与多种配置选项,助力开发者高效实现网页加载、交互及弹窗功能。开源协议为 Apache License 2.0。
212 0
|
12月前
|
前端开发 UED 开发者
React 模态对话框 Modal Dialog
本文介绍如何在 React 中实现模态对话框,涵盖基本概念、常见问题及解决方案。模态对话框是一种阻止用户与页面其他部分交互的弹出窗口,常用于显示重要信息或收集输入。通过状态管理控制其显示和隐藏,需注意多组件状态同步、关闭行为一致性及样式冲突等问题。文中还介绍了动画效果和键盘导航支持等进阶功能,帮助开发者提升用户体验并确保代码的可维护性。
369 80
|
移动开发 前端开发 UED
深入理解Rem适配:移动端网页设计的利器
深入理解Rem适配:移动端网页设计的利器
|
移动开发 前端开发 JavaScript
解决浏览器兼容性问题的方法
解决浏览器兼容性问题的方法
|
前端开发
Promise和async/await之间有什么区别
Promise与async/await是异步编程的两种模式。Promise使用.then()和.catch()处理回调,语法较复杂,易出现回调地狱;而async/await提供更清晰的顺序代码,使用try/catch进行错误处理,使异步操作更易读、易维护。Promise在控制流和错误堆栈方面较为灵活,但定位错误难,而async/await自动等待、线性控制流,错误堆栈清晰。两者各有优势,选择取决于具体需求和偏好。
|
前端开发
Bootstrap 5 保姆级教程(七):分页 & 列表组
Bootstrap 5 保姆级教程(七):分页 & 列表组
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第二章(Node连接本地数据库)
【4月更文挑战第2天】本文介绍了如何使用Node.js连接本地MySQL数据库。首先,提到了在MySQL官网下载安装数据库和使用Navicat for MySQL进行数据库管理。接着,通过`yarn add mysql`在项目中安装数据库依赖。然后,创建`app.js`文件,设置数据库连接参数,并建立连接进行查询操作。遇到导入模块的错误后,修改导入方式为CommonJS语法。
622 1
|
JavaScript 安全 前端开发
TypeScript 基础学习笔记:interface 与 type 的异同
TypeScript 基础学习笔记:interface 与 type 的异同
479 0