root + vm vh 实现响应式字体

root + vm vh 实现响应式字体前言一个网页中最多的东西是啥 正常人的第一反映肯定是文字 你要是跟我说是图片 那我只能表示 响应式网页设计中一个很难解决的问题就是文字的大小的问题了 面对千奇百怪的设备 如何解决文字的设配问题 是一个很重要的问题 在上一篇文章学透 CSS 合理使用这 8 个单位 让你的网站 Responsive 中我们介绍了 8 个响应式单位 大多数响应式字体的解决方案基本都是依赖于这几个单位来进行解决的 最初 media 下面是两个简单的例子 通过使用媒体查询 改变字体在不同设备下的文字大小 这种做法的缺点在哪里呢 是因

大家好,我是半夏?,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 ? 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师~关注公众号:搞前端的半夏,了解更多前端知识! 点我探索新世界!

原文链接 ==>http://sylblog.xin/archives/52

前言

一个网页中最多的东西是啥? 正常人的第一反映肯定是文字,你要是跟我说是图片,那我只能表示:

root + vm vh 实现响应式字体
响应式网页设计中一个很难解决的问题就是文字的大小的问题了,面对千奇百怪的设备,如何解决文字的设配问题,是一个很重要的问题。

最初:@media

下面是两个简单的例子,通过使用媒体查询,改变字体在不同设备下的文字大小。这种做法的缺点在哪里呢?是因为px是固定的,如果你设置的设备的宽度范围比较大,那么就会导致当前的px在另一个设备上看上去很大或者很小。另一个问题是;你不可能所有的文字都用这个大小,还需要针对其他的文字进行单独的处理,很麻烦。代码也很多。

@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {
    html{
      font-size:px;
    }

}

@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: portrait) {
    px
}

加强:@media + rem

rem就是html根元素font-size字体大小的倍数。

依赖于rem的特性,比较好的解决了,不同文字不同大小的问题。但是还是如何选择设备宽度区间还是比较复杂的问题。

@media only screen 
  and (min-device-width: 320px) 
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {
  html{
    font-size:px;
  }

p{
  font-size:1rem;
}

:root + vm + vh

对于我来说,我最喜欢的就是使用:root来做,但是你也可以选择html,在:root中根据vm和vh来计算出字体的大小,从而实现设配不同的设备。

:root { font-size: calc(1vw + 1vh + .5vmin); } body { font-size: 1rem/1.6 } 

这个公式最终计算出来的大小是啥?先来简单回忆一下:

1vw = 视口宽度的 1%

1vh = 视口高度的 1%

1vmin = 1vw 或 1vh,以较小者为准

1vmax = 1vw 或 1vh,以较大者为准

如果我们将其应用于 iPhone 7 的视口尺寸,即 375×667,计算出的值为:root:

:root { font-size: calc(3.75px + 6.67px + 1.875px); /* 1vw + 1vh + .5min */ } 

结语

这几个方法都可以使用,但我还是坚持:root。除了这几种方法,还有其他的方法,例如使用JS在页面,根据视口的宽高,在根元素上设置文字的大小,这样也是很好的一种解决方法,可自行尝试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199425.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午1:00
下一篇 2026年3月20日 下午1:00


相关推荐

  • 关于三角形面积的公式与格点多边形面积计算算法的讨论

    关于三角形面积的公式与格点多边形面积计算算法的讨论已知三角形三点坐标求三角形面积公式公式 即 S 1 2 x1y2 x2y1 x2y3 x3y2 x3y1 x1y3 证明过程 此链接格点三角形求面积或求三角形里格点 整点 个数 皮克定理 一张方格纸上 上面画着纵横两组平行线 相邻平行线之间的距离都相等 这样两组平行线的交点 就是所谓格点 如果取一个格点做原点 O 如图 1 取通过这个格点的横向和纵向两直线分别做横坐标

    2026年3月17日
    2
  • JS实现前进后退刷新的各种方法

    JS实现前进后退刷新的各种方法这里介绍了JS前进、后台、刷新的各种方法。也解释了很多前进后退函数出问题的原因。下面是用按钮做前进后退的JS:<inputtype=buttonvalue=刷新onclick=”window.location.reload()”/><inputtype=buttonvalue=前进onclick=”window.history.go(1)”/><inputtype=buttonvalue=后退onclick=”window.history.go(-

    2022年7月25日
    9
  • java写helloworld_Java编写的第一个程序:HelloWorld

    java写helloworld_Java编写的第一个程序:HelloWorld原理:Java文件需要编译后才能运行,编译命令为javacHelloWorld.java(使用javac.exe命令),编译之后会出现以.class结尾的字节码文件(HelloWorld.class)。运行的是字节码文件,运行命令为javaHelloWorld在桌面上创建一个code文件夹,在code文件夹中创建一个HelloWorld.java文件1、编写代码在HelloWorld.jav…

    2022年7月9日
    29
  • clion永久激活码[最新免费获取]

    (clion永久激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~6EK6WKOHUX-eyJsaWNlbnNlSWQiOi…

    2022年3月28日
    62
  • WiFi P2P协议学习

    WiFi P2P协议学习基本功能与服务 P2P 设备不能使用 11b 的速率传输数据和管理帧 除非 ProbeRequest 帧要同时发送给 P2P 设备和非 P2P 设备 P2P 设备不能响应显示只支持 11b 速率的 ProbeRequest 帧 P2P 设备应该支持如下一些操作 P2PDiscovery 省电相关 ManagedP2PDe

    2026年3月26日
    2
  • 外汇mt4软件的优势

    外汇mt4软件的优势外汇mt4软件的优势。互联网的发展,促进了各行各业的发展,也给在线投资提供了便利,一部上了网的智能手机就能完成在线投资。而在线投资中外汇投资受到的关注度是越来越高了,许多人已经通过mt4平台下载开始投资之旅,那么,下载这个平台有什么好?mt4软件可以在上面预设及时止损的功能,也就是说当小白外汇投资者所购买的商品价格或者其他方面发生异常变动的时候,这个交易平台可以通过报警的方式提醒投资者,也可以通过自动止损的方式减少投资者的损失,这个功能对于投资者来说非常的实用,毕竟不是人人都有时…

    2022年5月29日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号