css之学好rem

news/2024/11/25 13:17:47/

1、先说说几个前端常用的几个单位的概论:

  • 1、px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。Windows系统默认是96dpi,Apple系统默认是72dpi。

  • 2、em(相对长度单位,相对于当前对象内文本的字体尺寸):是一个相对长度单位,最初是指字母M的宽度,故名em。现指的是字符宽度的倍数,用法类似百分比,如:0.8em, 1.2em,2em等。通常1em=16px。

  • 3、pt (point,磅):是一个物理长度单位,指的是72分之一英寸。pt=1/72(英寸), px=1/dpi(英寸)

  • 4、rem(root em,根em):是CSS3新增的一个相对单位,这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,相对大小对比的是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。

2、开始进入rem教程

1.先设置header里面的meta标签:

 

<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">

2.在header写上<script>标签

 

<script type="text/javascript">
  document.documentElement.style.fontSize = document.documentElement.clientWidth / 640*100 + 'px';
</script>

问题:为什么要设置Html的font-size?

答:这里是设置html标签的font-size,上面概论红色字写的很清晰,页面元素使用rem单位时,是相对于这个html标签的font-size的大小为基础的。

问题:为什么是clientWidth/640?为什么要乘以100?

答:

  1. 是因为这里是作为一个基础数值,换个方向去想,这里先不乘以100以免产生误解。

    例如:设计稿宽度是640px,有一个元素设计稿上的宽度是50px,设备物理宽度是320px,那么我们在页面上应该设置宽度为 width:50rem,相当于宽度是:50*(320/640)=25px;这里能正确算出在320px的设备上刚好占一半,其实可以想象为 rem=(320/640)。

  2. 一般浏览器的最小字体是12px,如果html的font-size=(320/640)px,相当于font-size=0.5px,那么这个数值就小于12px,会造成一些计算的错误,和一些奇怪的问题,*100后,font-size是50px,就可以解决这种字体小于12px的问题。

  3. 为了计算方便 我们后面把比率乘以了100,(320/640)*100,那么相对应这个元素在设置数值的时候就需要除以100了(50/100),这样可以保证最后出来的数值不变.

3、设置好html的font-size,那么我们下面就可以开始编写根据设计稿的例子了。

设计稿是640px,有一个红色盒子宽高都是320px,里面的文字是32px,那么下面是这个例子的代码。

 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1, minimum-scale=1">
<script type="text/javascript">
document.documentElement.style.fontSize = document.documentElement.clientWidth / 640*100 + 'px';
</script>
</head>
<body style="margin: 0 ;padding: 0;font-size: 0.32rem">
<div style="width: 3.2rem;height: 3.2rem ;background: red">
<span>danny.xie</span>
</div>
</body>
</html>

1、在iphone5下的情况,设备的物理像素是320px

2、在iphone6下的情况,设备的物理像素是375px

可以看到字体的大小和红色盒子的宽高跟设计稿上面的比例是保持一致的,这样就是rem适配不同设备的的基本用法


http://www.ppmy.cn/news/85454.html

相关文章

2023年春季期末网球理论复习资料

&#xff08;含2023/2022/2021时事题&#xff0c;基于2012年期末网球理论复习资料修改&#xff09; 目录 网球的起源 网球的主要赛事 三大网球协会 大满贯 网球的场地 1. 球场线 2. 网球的球网 3.场地的类型 网球的规则 1.发球规则 2.计分方法 3.通则 4.赛…

006 - STM32学习笔记 - RCC时钟树

006 - STM32学习笔记 - RCC时钟树 本节内容一定要结合RCC时钟树和官方手册学习&#xff0c;如果看不明白的话&#xff0c;建议看一下野火官方的教程&#xff0c;火哥讲这节讲的很详细&#xff0c;看一遍基本就能理解了。 上节内容中分析了启动代码&#xff0c;在启动代码中看…

【工作记录】基于docker-compose快速部署springboot应用的实践

前言 毋庸置疑&#xff0c;容器化部署已经是近两年的大趋势了。 本文介绍基于docker-compose快速实现springboot单体应用的容器化部署操作实践&#xff0c;应用使用开源的可视化爬虫spiderflow。 当然也可以通过其他方式可以完成部署&#xff0c;本文也只是提供一种思路。 …

保姆级教程:手把手教你拿下雅思写作7分

在留学路上&#xff0c;雅思考试是绕不开的一道坎。然而&#xff0c;众所周知&#xff0c;雅思学习热度高&#xff0c;学习难度大&#xff0c;而且很多人找不到合适的学习方法。在这里&#xff0c;我们以雅思写作中的大作文为例&#xff0c;从大作文的结构拆解、学习的任务拆分…

【杂记】平方和公式及其证明

根据等差数列求和公式&#xff0c;我们知道 ∑ i 1 n i n ( n − 1 ) 2 \sum\limits_{i1}^n i\dfrac {n(n-1)}{2} i1∑n​i2n(n−1)​。那么 ∑ i 1 n i 2 \sum\limits_{i1}^ni^2 i1∑n​i2 的公式是什么呢&#xff1f; 平方和公式&#xff1a; ∑ i 1 n i 2 n ( n 1 …

每位软件测试工程师都应了解的风险管理知识

软件测试是软件开发的重要组成部分&#xff0c;软件测试需要的不仅仅是发现和修复默认设置&#xff0c;还需要识别和管理风险&#xff0c;由此&#xff0c;在整个测试计划阶段制定风险管理计划至关重要。 软件测试风险管理计划的要点 在软件测试中&#xff0c;风险管理是发现、…

字节8年测试经验,从功能测试到自动化测试,我整理了这一份2000字进阶学习指南

随着软件行业的不断发展&#xff0c;软件测试技术也在不断地更新&#xff0c;出现了众多的自动化功能测试工具&#xff0c;如HP的Quick Test Professional&#xff08;最新版本名为UFT&#xff09;及开源的Selenium。性能测试工具如LoadRunner、JMeter等。 所谓自动化测试&…

C++中stack的用法(超详细,入门必看)

博主简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的人。 博主主页&#xff1a;陈童学哦 所属专栏&#xff1a;CSTL 前言&#xff1a;Hello各位小伙伴们好&#xff01;欢迎来到本专栏CSTL的学习&#xff0c;本专栏旨在帮助大家了解…