如今手机屏幕繁多,自适应效果中如何确定文字大小/字号?

em rem vm vw vh你都了解吗?
先说说em和rem em:继承父级的,假设html的font-size默认为16px,body字体大小定义为50%,那么在body里字体大小就是1em=8px了。可当你又定义了一个div,然后把字体设置成了50%,请问,现在div下的1em等于多少?因为继承了父级的值,现在这个div里的1em=4px,这么嵌套下去的话,抱歉,我数学不好!
rem:是em的升级版,rem只会相对html的值,不会受到父级的影响,这样的好处在于:从em里的例子来讲,1rem始终会等于8px。使用的时候不需要重新计算rem此时的大小。rem因为是css3增加的,所以ie8或以下请无视(始终想不明白,为什么国人至今对微软都放弃的ie这么恋恋不舍)。

具体用法看下图,是不是秒懂?

以上也算是讲清了他们之间的区别和关系,rem更多的运用于移动H5页面的适配使用。
因为rem是相对html的,那么只要将html选择器设置一个绝对大小的值:
首先10的倍数容易计算,那为什么不是10本身而是20?
现在Chrome最小的字体是12px,所以10px是无效的,进一步就取20px);
现在是不是和效果图一个像素都不差?!!!

且要兼容手机各个分别率,使用媒体查询media 可以设置不同的大小,这样在常规的设备中都可以精准到每一个像素。

这么换算来换算去好麻烦有木有!!所以发现了下面的换算工具,妈妈再也不用说我数学题不会做了!

下面是我直接在工具复制过来的现成rem换算适配代码↓(设计稿宽度:640,字体值:20)


@media only screen and(max - width: 1080px), only screen and(max - device - width: 1080px) {
html, body {
font - size: 16.875px;
}
}
@media only screen and(max - width: 960px), only screen and(max - device - width: 960px) {
html, body {
font - size: 15px;
}
}
@media only screen and(max - width: 800px), only screen and(max - device - width: 800px) {
html, body {
font - size: 12.5px;
}
}
@media only screen and(max - width: 720px), only screen and(max - device - width: 720px) {
html, body {
font - size: 11.25px;
}
}
@media only screen and(max - width: 640px), only screen and(max - device - width: 640px) {
html, body {
font - size: 10px;
}
}
@media only screen and(max - width: 600px), only screen and(max - device - width: 600px) {
html, body {
font - size: 9.375px;
}
}
@media only screen and(max - width: 540px), only screen and(max - device - width: 540px) {
html, body {
font - size: 8.4375px;
}
}
@media only screen and(max - width: 480px), only screen and(max - device - width: 480px) {
html, body {
font - size: 7.5px;
}
}
@media only screen and(max - width: 414px), only screen and(max - device - width: 414px) {
html, body {
font - size: 6.46875px;
}
}
@media only screen and(max - width: 400px), only screen and(max - device - width: 400px) {
html, body {
font - size: 6.25px;
}
}
@media only screen and(max - width: 375px), only screen and(max - device - width: 375px) {
html, body {
font - size: 5.859375px;
}
}
@media only screen and(max - width: 360px), only screen and(max - device - width: 360px) {
html, body {
font - size: 5.625px;
}
}
@media only screen and(max - width: 320px), only screen and(max - device - width: 320px) {
html, body {
font - size: 5px;
}
}
@media only screen and(max - width: 240px), only screen and(max - device - width: 240px) {
html, body {
font - size: 3.75px;
}

下载地址,离线和在线都有离线版本:https://github.com/leon776/grunt-px2rem
在线版本:http://mxd.tencent.com/wp-content/uploads/2014/11/rem.html

再说vm

适用于网格布局
Rems 不仅仅只是在设置字体大小上很方便。再炒个栗子,你可以用基于html根元素字体大小的rem作为整个网格布局或者UI库的大小单位,然后在其他特定的地方用em单位。这样将会给你带来更多的字体大小和伸缩的可控性,

概念上来说,这个方法的思想就是让你的界面根据你的内容进行缩放。但是,这样做并不是对所有的情况都有意义。

vh and vw
响应式web设计离不开百分比。但是,CSS百分比并不是所有的问题的最佳解决方案。
而不是父元素的,那该肿么办?这就是 vh 和 vw 单位为我们提供的。

1vh 等于1/100的视口高度。栗子:浏览器高度900px, 1 vh = 900px/100 = 9 px。同理,如果视口宽度未750, 1vw = 750px/100 = 7.5 px。

可以想象到的,他们有很多很多的用途。比如,我们用很简单的方法只用一行CSS代码就实现同屏幕等高的框。

.slide { height: 100vh; }
假设你要来一个和屏幕同宽的标题,你只要设置这个标题的font-size的单位为vm,那标题的字体大小就会自动根据浏览器的宽度进行缩放,以达到字体和viewport大小同步的效果,有木有?!

实例
vmin and vmax
vh和 vm 依据于视口的高度和宽度,相对的,vmin 和 vmax则关于视口高度和宽度两者的最小或者最大值。比如,浏览器的宽度设置为1100px,高度设置为700px, 1vmin = 1px, 1vmax = 11px。如果宽度设置为800px,高度设置为1080px, 1vmin就等于8px, 1vmax则未10.8px。

那么问题来了,我们应该在什么场景下使用这两个单位呢?

假设有一个元素,你需要让它始终在屏幕上可见。只要对其高度和宽度使用vmin单位,并赋予其低于100的值就可以做到了。再来个栗子,可以这样定义一个至少有两个边触摸到屏幕的方形:

.box {
height:100vmin;

width:100vmin;
}

如果你要让这个方形框框始终铺满整个视口的可见区域(四边始终触摸到屏幕的四边)

.box { height: 100vmax; width: 100vmax; }

结合使用这些单位可以为我们提供一个新颖有意思的方式来灵活地利用我们视口的大小。

html中的em和rem到底该如何使用,自适应效果中如何确定文字大小/字号?的更多相关文章

  1. 彻底弄懂响应式设计中的em和rem

    前一阵子在响应式开发中遇到了em和rem的问题,也上网搜过一些文章,篇幅很长,也没有仔细看,今天来总结一下. rem是指:根元素(root element,html)的字体大小, em是指:父元素的字 ...

  2. css中单位em和rem

    一.介绍 1.em w3cschool中给出css中尺寸单位如下: 单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字体尺寸. 2em 等于当前字体尺寸的两倍. 例 ...

  3. css中单位em和rem的区别

    在css中单位长度用的最多的是px.em.rem,这三个的区别是: px是固定的像素,一旦设置了就无法因为适应页面大小而改变. em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定 ...

  4. 简谈CSS 中的 em,rem,px,%

    在实际工作中,可能我们用的比较多的是‘%’ 和 px,但是我们也经常看到很多网站和css框架里用的是em 或rem.而‘%’ 和px已经都是比较常见或者说是常用.但是em 和rem 却鲜有使用,一直以 ...

  5. em与rem之间的区别以及移动设备中的rem适配方案

    em与rem之间的区别: 共同点: 它们都是像素单位 它们都是相对单位 不同点: em大小是基于父元素的字体大小 rem大小是基于根元素(html)的字体的大小 实例: <!DOCTYPE ht ...

  6. 何时使用 Em 与 Rem

    原文  http://www.w3cplus.com/css/when-to-use-em-vs-rem.html   你可能已经很熟练使用这两个灵活的单位,但你可能不完全了解何时使用rem,何时使用 ...

  7. 你真的知道em和rem的区别吗?

    前言 em 和 rem 都是相对单位,在使用时由浏览器转换为像素值,具体取决于您的设计中的字体大小设置. 如果你使用值 1em 或 1rem,它可以被浏览器解析成 从16px 到 160px 或其他任 ...

  8. 响应式十日谈第一日:使用 rem 设置文字大小

    上面回顾: 在序言中我们已经提到了响应式的一些基本理念,比如: 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时 ...

  9. css中单位px、pt、em和rem的区别

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? px :像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.(引自CSS ...

  10. css中的px、em、rem 详解

    概念介绍: 1.px (pixel,像素):是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI(Dots Per Inch,每英寸像素数),在扫描打印时 ...

随机推荐

  1. NSSM:简化Windows服务配置,提升系统维护效率

    NSSM:简化Windows服务配置,提升系统维护效率 在Windows系统环境中,服务的配置与管理是一项复杂而重要的任务.传统的服务管理方式往往涉及繁琐的步骤,不仅效率低下,还容易出错.然而,随着N ...

  2. DeepSeek部署本地知识库

    技术背景 在前面的两篇文章中,分别介绍过Ubuntu上关于DeepSeek的部署以及Windows平台关于DeepSeek的部署.其中内容包含了Ollama的下载安装和基本使用.DeepSeek模型文 ...

  3. PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?

    在之前的三篇文章中,笔者介绍了有关DeepSeek的基础操作,满足了不同类型的用户需求. 想利用大模型构建属于自己的智能知识库,无论你是想私有化部署,还是直接使用API调用,都可以在这三篇文章中找到答 ...

  4. JUC并发—10.锁优化与锁故障

    大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits l ...

  5. 【COM3D2Mod 制作教程(3)】Mod 制作概要

    [COM3D2Mod 制作教程(3)]Mod 制作概要 制作工具整合包:https://mod.3dmgame.com/mod/205516 该工具包简单整合了些本章需要的小型工具.插件.以及其他一些 ...

  6. 如何用爱思助手给苹果iPhone手机免越狱修改虚拟定位教程

    使用爱思助手修改定位的方法: 1.在电脑上下载安装 爱思助手 客户端,并更新到最新版,用数据线将苹果移动设备连接到电脑. 2.连接成功后,依次打开爱思助手"工具箱 - 虚拟定位". ...

  7. 洛谷P1191 矩形 题解

    笛卡尔树的介绍 笛卡尔树,是一种二叉搜索树,它满足如下条件: 每个节点的编号满足二叉搜索树的性质. 每个节点的权值满足小根堆或大根堆的性质. 大概是这个样子: 笛卡尔树的建树 请看这里. 笛卡尔树的用 ...

  8. C#如何使用HttpClient对大文件进行断点上传和下载

    什么是Http的断点上传和下载 断点上传:在向服务商上传大文件的时候,将一个大的文件拆分成多个小的文件,每个文件通过单独的Http请求上传给服务器. 断点下载:在向服务器请求下载一个大的资源文件的时候 ...

  9. Laravel11 从0开发 Swoole-Reverb 扩展包(三) - reverb广播驱动使用流程

    前情提要 我们第一节的时候,已经大致介绍reverb,他 是 Laravel 应用程序的第一方 WebSocket 服务器,可将客户端和服务器之间的实时通信直接带到您的指尖.开源且只需一个 Artis ...

  10. angular+ionic项目,页面无法滚动的问题

    在做angular+ionic+cordova项目时,遇到一个小小的问题,就是内容做完,页面无法滚动,导致内容显示不完整 首先我检查了样式,发现并没有给页面定死高度,再次检查结构发现,我并没有用ion ...