rem ~~ 你懂了吗?
前端 开发的适配中 rem 有着举足轻重的位置,用好了,你就是神,用不好 ,直接GG;不好懵懵懂懂,要头头是道。
言归正传:
首先我们需要了解,css 布局的单位常用的有一下几种:
1、px (pixel,像素)
2、pt (point,磅):指的是72分之一英寸。pt=1/72(英寸), px=1/dpi(英寸)
3、em(相对长度单位) 继承父级fontSize大小或相对于当前对象内文本的字体尺寸 :通常1em=16px。
<div style="font-size:14px;>
14px的字体
<p style="font-size:1em;">
1em = 14px 的字体
</p>
</div>
4、rem(相对长度单位) 相对的是 文档根节点的font-size大小
两种换算方法:
不要忘了先设置header标签:
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1, minimum-scale=1">
百分比设法:
计算规则: 百分数 = 基数 / 16
基数 10 ==> 62.5%
14 ==> 87.5%
换算公式为:
X rem = 你测量出来的 px 值 / 基数
下面的例子:
28px / 14 ==> 2rem;
<!DOCTYPE html>
<html style="font-size:87.5%">
<head>
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1, minimum-scale=1">
</head>
<body style="font-size:2rem;">
<div style="width: 10rem;height: 10rem ;background: red">
<span>基准是 14px; 2rem ==> 28px </span>
</div>
</body>
</html>



坑!!!!!!!预警
如果你用的chrome 浏览器 他的最小字体12px 以及 最小高度都有最小值得限制 这样会导致 你用 基数为10的进行计算时 没效果!!!这是浏览器问题!!!!
相对px写法
var d = document.documentElement; //拿到根元素
var cw = d.clientWidth || 640; // 获取默认屏幕宽度 默认是 640px的宽度
d.style.fontSize = (20 * (cw / 320)) > 40 ? 40 + 'px' : (20 * (cw / 320)) + 'px'; 限制最小字体的大小 /最小20px 最大 40px
如何你字体大小问 为什么要被限制??? 那么我只能说你问的 很好
答案: 就chrome 浏览器而言 有最小字体的限制 为避免这种尴尬局面的出现,设置最小20px. 最小数值的限制最小数值的限制最小数值的限制
<!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">
//第一种
var d = document.documentElement; //拿到根元素
var cw = d.clientWidth || 640; // 获取默认屏幕宽度 默认是 640px的宽度
d.style.fontSize = (20 * (cw / 320)) > 40 ? 40 + 'px' : (20 * (cw / 320)) + 'px'; //限制最小字体的大小 /最小20px 最大 40px
//第二种 (简单粗暴)
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> //实际的宽度计算就是 x rem = 测量的宽度PX / 动态设置的font-siz值
</div>
</body>
</html>
这就今天分享的重点了 有不足 或 错误的地方 欢迎指正 ~~~ 谦虚使人进步
rem ~~ 你懂了吗?的更多相关文章
- 彻底弄懂设置根元素字体大小calc(100vw/18.75) 实现rem自适应
rem 是相对文档根元素(html)字体大小的尺寸单位,当元素的尺寸或文字字号等使用 rem 单位时,会随着根元素的 font-size 变化而变化,那么在不同分辨率的设备下动态设置根元素的字体大小就 ...
- 如何更愉快地使用rem —— 别说你懂CSS相对单位
前段时间试译了Keith J.Grant的CSS好书<CSS in Depth>,其中的第二章<Working with relative units>,书中对relative ...
- 彻底弄懂css中单位px和em,rem的区别
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 -1. IE无法调整那些使用px作为单位的字体大小: -2. 国外的大部分网站能够调 ...
- 彻底弄懂响应式设计中的em和rem
前一阵子在响应式开发中遇到了em和rem的问题,也上网搜过一些文章,篇幅很长,也没有仔细看,今天来总结一下. rem是指:根元素(root element,html)的字体大小, em是指:父元素的字 ...
- 彻底弄懂css中单位px和em,rem的区别 转的自己看
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的 ...
- 弄懂css中单位px和em,rem的区别
国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? PX特点 1. IE无法调整那些使用px作为单位的字体大小 ...
- 【转载】彻底弄懂css中单位px和em,rem的区别
原文链接:http://www.cnblogs.com/leejersey/p/3662612.html 国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什 ...
- [转]彻底弄懂css中单位px和em,rem的区别
难怪会问我 rem 和 em, 这俩或在移动端还是很有必要学习的. root em OK? 国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? P ...
- 彻底弄懂css中单位px和em,rem的区别
PX:PX实际上就是像素,用PX设置字体大小时,比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破.这样 ...
随机推荐
- 【Python】 Web开发框架的基本概念与开发的准备工作
Web框架基本概念 现在再来写这篇文章显然有些马后炮的意思.不过正是因为已经学习了Flask框架, 并且未来计划学习更加体系化的Django框架,在学习过程中碰到的很多术语等等,非常有必要通过这样一篇 ...
- 自动化运维工具---expec
作为运维经常操作Linux服务器是不可避免的事情的,那么你们都是怎么管理的呢? 我们管理的方式较为复杂了,我说一下: 有一套服务器资产管理系统,所有服务器都记录在上面,包括用户名密码,内外网地址都会有 ...
- if判断 -z -n 参数
_echo_error() { echo -ne "\033[31;1m $1\033[0m\n";}_echo_ok() { echo -ne "\033[32;1m ...
- 第一次作业:来自一个奋斗的IT学子
第一部分 结缘计算机 1.1你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 说起为何结缘了计算机,就得谈谈专业报考了,我觉得我的报考真是一个反面教科书了.由于高中以前每天只要想着 ...
- C语言第三次作业总结
本次作业的亮点 总体情况 大部分同学基本掌握了单层循环结构的写法,懂得了代码调试的过程 PTA通过率及作业质量都不错,希望再接再厉 推荐博客 黄毓颖 推荐理由:代码思路清晰,格式良好:调试过程相当形象 ...
- Alpha第五天
Alpha第五天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...
- 使用Python定制词云
一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代 ...
- android 广播,manifest.xml注册,代码编写
1.种 private void downloadBr(File file) { // 广播出去,由广播接收器来处理下载完成的文件 Intent sendIntent = new Intent ...
- Beta冲刺Day5
项目进展 李明皇 今天解决的进度 服务器端还未完善,所以无法进行联动调试.对页面样式和逻辑进行优化 明天安排 前后端联动调试 林翔 今天解决的进度 完成维护登录态,实现图片上传,微信开发工具上传图片不 ...
- django models的点查询/跨表查询/双下划线查询
django models 在日常的编程中,我们需要建立数据库模型 而往往会用到表与表之间的关系,这就比单表取数据要复杂一些 在多表之间发生关系的情形下,我们如何利用models提供的API的特性获得 ...