最新要闻
- 【快播报】安全头盔是个宝 骑乘人都要佩戴好
- 知名男演员李光洁跟电诈团伙打36分钟电话:半天才发现破绽
- 当前时讯:减重近一吨 我国首辆镁合金轻量化挂车交付
- 手机/PC双端互通!米哈游《崩坏:星穹铁道》预下载开启:4月26日上线
- 实拍“星舰”发射失败后现场:发射台报废、地面影像设备尽毁|世界焦点
- 最强拍照折叠屏!小米MIX Fold 3规格曝光:用上一英寸IMX989
- 打哈欠真的会传染吗 环球快看点
- 科创板首批“重大违法退”锁定,注册制下退市生态加速构建 世界独家
- 厦门钨业于云南新设科技发展子公司:企查查APP显示,近日,云南厦钨科技发展有限公司成立,注册资本100万元,经营范围包含 全球热文
- 全球热头条丨电池原材料价格大跌坑到宁王?宁德时代回应
- 天天快讯:每小时1000公里 !我国“高速飞车”研制取得新进展
- 每日热讯!马斯克请回来的4D成像雷达 百度小米蔚来也押注了:战况很激烈
- 《天宫之镜》上线:首次慢直播中国空间站-天天实时
- 每日焦点!同飞股份4月24日盘中涨幅达5%
- 最后时刻单防福克斯!追梦:如果这让你感觉不好 我很抱歉
- 北京国际电影节有哪些看点?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
为什么你永远不应该在CSS中使用px来设置字体大小-今日关注
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具Fundebug。
(资料图)
在Josh Collinsworth的博客文章“永远不要用px作为字体大小”中,作者讨论了为什么不应该使用像素(px)作为网页字体大小的单位[1]。作者指出,相对于容器、浏览器或用户的字体大小,px值是静态的。无论用户的字体偏好设置如何,当我们以静态像素设置值时,它将覆盖用户的选择,以我们指定的确切值替代。这意味着,如果我wu7的样式表使用像素单位,可能导致访问网站的用户难以阅读。
因此,作者建议使用相对单位,如em、rem或百分比,而不是像素。这些单位是基于用户的字体大小偏好设置进行缩放的,从而提供了更好的可访问性和可读性。尤其是在设计响应式网站时,相对单位能够提高跨设备的兼容性。通过使用相对单位,设计师可以确保网站在不同设备和浏览器中以合适的字体大小显示[1]。
下面是正文:
在 Web 开发领域中,有很多误解流传,即使它们被反驳了很多次也仍然存在。"外部链接应该总是在新标签页中打开" 就是一个很好的例子。CSS Tricks 在将近十年前就对此进行了详细的解释(简而言之:大多数情况下是错误的),但它似乎仍然在某些角落中存在。
案例证明:在CSS中,px
,em
或rem
单位之间没有功能上的区别的想法是一个我一遍又一遍听到的误解,因此我想在这里发帖来解决这个问题。
我们要非常清楚:在CSS中使用的单位绝对很重要。并且在设置时font-size
应尽可能避免使用px
。
我们在谈论什么单位,它们是做什么的?
在我们讨论为什么应该避免使用px
作为font-size
之前,让我们确保我们都清楚我们正在谈论哪些单位,以及它们的一般行为。
px
px
是像素的缩写……虽然现在大多数情况下它不再是一个真正的像素。在显示器通常是一个相对可预测的低分辨率像素比例,比如1024×768
的时代,1px
通常等于屏幕上的一个实际像素。
屏幕使用称为像素的彩色光点阵来显示图像。一个像素是显示器上的一个彩色光点;硬件能够呈现的最小可能的“点”。这就是我在本节中所说的“字面上的”、“实际的”或“设备”像素;物理世界中的一个像素。
然而,当高分辨率(有时称为“视网膜”)屏幕出现时,设备开始将更多的像素压缩到更小的空间中,这些物理设备像素变得非常微小。在高分辨率屏幕上浏览网页,如果CSS中的1px
仍然对应于一个字面设备像素,那么甚至阅读任何内容都将非常困难,因为像素本身正在迅速缩小。毕竟,现代智能手机的分辨率甚至比高清电视还要高。
所以现在,1px
通常对应于放大的“缩放”像素的大小,而不是实际硬件上的字面像素。在我们的 CSS 中,1px
的东西可能会占用多个物理硬件像素,而我们没有任何纯 CSS 的方法来指定一个字面设备像素。但这没关系,因为它们通常太小了,我们不想去处理它们。
一个例子:iPhone 14 Pro 上的像素非常微小,16px 在字面上的设备像素大小大约相当于2pt字号的印刷字体大小。好在浏览器为我们缩放了它们!
大多数情况下,这些并不在本讨论的语境中真正重要,但我认为了解这些还是很好的。重要的部分是:1px
等于浏览器视为单个像素的任何内容(即使在硬件屏幕上它不是真正的像素)。
em 和 rem
这就带我们来到了em
和rem
,它们彼此相似。继续讲述不严格相关但仍然有趣的小知识: "em" 是一个排版术语,实际上比计算机早了几十年。在排版上,一个em
等于当前字体大小。
如果你将字体大小设置为32pt
(“pt”是另一个仍然有时使用的旧排版术语),那么1em
就是32pt
。如果当前字体大小为20px
,那么1em = 20px
。
在网页上,默认字体大小为16px
。一些用户从不更改默认设置,但许多人会更改。但默认情况下,1em
和1rem
都将等于 16px 。
“Em” 最初是指 “M” 字符的宽度,这也是名称的由来。但现在它指的是当前字体大小,而不是特定字形的尺寸。
EM 和 REM 之间的区别
为了区分这两者:1rem
始终等于浏览器的字体大小,或者更准确地说是 html 元素的字体大小。rem
代表“根em”,而网页的根是标签。因此,
1rem
=document
字体大小。(默认情况下,这是16px
,但可以被用户覆盖。)
另一方面,em
是当前元素的字体大小。看下面的CSS:
.container { font-size: 200%;}p { font-size: 1em;}
考虑到上述 CSS,.container
元素内的段落将会变成原来的两倍大小。这是因为1em
表示“当前字体大小”,在.container
内,它是200%
。1em × 200% = 2em
(默认为32px
)。
然而,.container
元素外的段落仍将是1em
的正常字体大小(默认为16px
)。
如果我们在上面的CSS中将em
更改为rem
,那么所有段落标签的字体大小将始终是浏览器的默认大小,无论它们在哪里。
font-size: 1em 等同于 font-size: 100% 。 em 和 % 单位在其他情况下并不总是等价的;例如,
width: 1em
和width: 100%
很可能会非常不同,因为此时百分比是基于父容器的宽度而不是其字体大小。但是,就 font-size 属性而言,%
和em
是相同的。
总结一下:
1em
是当前元素的字体大小。1rem
(根em)是文档的字体大小(即浏览器的字体大小)。
好的,那就是单位的含义和来源。现在让我们回答为什么使用哪个单位很重要。
为什么这一切都很重要
再次强调的误解是:既然1em
和16px
相等,那么选择哪个单位并不重要。这似乎是合理的;如果16px = 1rem
,那么选择哪种方式输入似乎并不重要。
记住,em
和rem
是相对的;默认情况下,它们都(最终)基于浏览器的字体大小。
2rem
是浏览器字体大小的两倍;0.5rem
是其一半,依此类推。因此,如果用户更改其首选字体大小,如果使用em
和rem
,则网站上的所有文本都会相应更改,就像应该的那样。2rem
仍然是该字体大小的两倍;0.5rem
仍然是其一半。
相比之下,px
值是静态的。无论容器、浏览器或用户的字体大小如何, 20px
只是20px
。当设置静态像素值时,无论用户的字体偏好大小如何,它都会覆盖该选择并使用指定的确切值。
批判性地说,这意味着如果你的样式表使用px
在任何地方设置font-size
,那么基于该值的任何文本都将无法由用户更改。
那是非常糟糕的事情。它是不可访问的,甚至可能会阻止某人完全使用该网站。
因此,虽然可能存在一些有效的用例来解释这种行为,但它绝对不是你想要的默认行为。
这也是避免使用视口单位(如 vw 或 vh )设置字体大小的非常好的理由。它们也是静态的,用户无法覆盖。 最多,像
calc(1rem + 1vw)
这样的值可能是可以接受的,因为它仍然包含rem
作为基础。即便如此,我仍建议使用clamp()
或媒体查询来设置最小和最大值,因为屏幕尺寸往往远远超出我们所期望或测试的范围。
超出字体大小的差异
好的,现在让我们谈谈当我们不特别处理font-size
属性时,px
和em / rem
如何变化。
开发人员通常通过缩放页面来进行测试,我认为这就是本文中心误解的来源。当你缩放时,所有内容都会被缩放(放大或缩小),在这种情况下,选择px
或em
/rem
作为你的CSS单位通常并不重要。就缩放而言,两者的行为方式相同。而且,大多数视力良好的开发人员可能不会意识到其中还有更多内容。然而,棘手的问题是:
即使超出font-size
,px
的行为也与em
和rem
不同。
px
单位仍然与屏幕上像素的缩放值相关联。em
和rem
与文档的字体大小相关联,而不是页面的缩放或比例。
为了演示,请看这个 CodePen:
codepen.io/collinswort…
我们有几个段落,每个段落底部有2px
边框,并且它们之间有20px
边距。请注意,我们对两者都使用px
单位。
如果你放大或缩小,元素的大小和距离保持相对不变。也就是说:你放大得越多,那条线就越粗,段落之间的间距就越大。
为了方便起见,这里有一张截图,显示了同一支笔的400%缩放。文本、线条和间距都变大了4倍;它们相对于彼此的大小保持不变:
当涉及到缩放时,px
、em
或rem
之间没有真正的区别。但缩放并不是用户使网站更易用的唯一方法。
如前所述,用户还可以指定默认和/或最小字体大小。当他们这样做时,功能开始分歧。
在下面的截图中,我已将Firefox的默认字体大小设置为64px
。看一下:
将屏幕截图中的文本与其上方的文本进行比较。请注意,这一次,行并没有变粗,段落之间的边距也没有成比例增加。只有文本本身变大了。因为边框宽度和边距都是在 px 中设置的,它们保持不变,不会缩放。
但是请注意,如果将CSS中的px
更改为相应的rem
值,会发现线条和间距确实变大了! (zh-Hans)
所以,这里的总结是:
当用户更改字体大小时, px 值不会缩放。
em 和 rem 的值会随字体大小成比例调整。
如果你想要一个交互式演示,将所有这些内容联系在一起,请查看最终的 CodePen;调整顶部的滑块以查看修改文档字体大小对各种元素的影响,基于它们使用的 CSS 单位。codepen.io/collinswort…
选择哪一个
因此,知道em
和rem
会随字体大小缩放,但px
值不会,那么我们该怎么办?我们应该永远不使用px
吗?
虽然我认为如果你选择这条路,你可能会没事,但我仍然认为 px 有其存在的意义。
我们知道当用户调整字体大小时px
值不会改变,这意味着像素单位实际上是某些美学元素的不错选择。也许我们有一定的间距,我们不希望在字体大小变大时变得更大。(如果默认情况下是一个大块的负空间,也许允许它缩放到更大的尺寸是没有意义的。)
也许有一些边框大小我们不想改变,或者页面上有用 CSS 创建的装饰元素,在更大的字体大小下看起来效果不佳。也许我们不希望填充随着字体大小的增加而膨胀。在所有这些情况下, px 仍然是一个不错的选择。
我个人建议使用rem
来设置所有的大小。我只在想要与当前字体大小成比例的东西(例如,与一些文本旁边的图标应该与字符的高度完全相同,并且在一侧有半个字符的情况)中添加em 。我不会在任何地方使用px
,除非是明确不想随字体大小缩放的设计元素。
永远不要用px
单位中设置 font-size,除非你非常确定你在做什么,它会如何行动,以及在你这样做时它是否仍然可访问。
关于媒体查询的重要说明
出于与上述所有原因相同的原因,重要的是要避免在@media
查询中使用px
;当用户缩放时,它将正常工作,但是使用px
的媒体查询将在用户自己设置更大的字体大小时失败。
@media (min-width: 800px) { /* Changing font size does NOT affect this breakpoint */}@media (min-width: 50rem) { /* Changing font size DOES affect this breakpoint */}
这是因为随着字体大小的增加,50rem
会根据用户的偏好变成不同的值,而800px
则不会。
很可能,当我们为较大的断点编写CSS时,我们认为有足够的屏幕空间让元素扩展。如果用户设置了非常大的字体大小,则可能不是这种情况,将媒体查询设置为rem
而不是px
可以帮助我们避免这种假设并响应用户的偏好。
我在这个网站上遇到了这个问题;我把所有的断点都设置在 px 上。然而,当我将默认字体大小设置得更大时,我的媒体查询没有响应,因为它们仍然只查看屏幕的像素宽度。因此,我仍然有一个微小的侧边栏,里面塞满了难以辨认的巨大文本,因为我没有考虑用户的偏好。在那之后,我立即改为 rem ,问题得到了解决。
简而言之:在媒体查询中,除非您确定自己知道在浏览器中设置自己的字体大小会对用户产生什么影响,否则一定要避免使用px
。
更多内容请点击:https://cybozudev.kf5.com/hc/community/question/34258654/
关键词:
chatgpt~插件介绍
为什么你永远不应该在CSS中使用px来设置字体大小-今日关注
Natasha 编译单元(四)_世界快资讯
【快播报】安全头盔是个宝 骑乘人都要佩戴好
知名男演员李光洁跟电诈团伙打36分钟电话:半天才发现破绽
当前时讯:减重近一吨 我国首辆镁合金轻量化挂车交付
手机/PC双端互通!米哈游《崩坏:星穹铁道》预下载开启:4月26日上线
实拍“星舰”发射失败后现场:发射台报废、地面影像设备尽毁|世界焦点
最强拍照折叠屏!小米MIX Fold 3规格曝光:用上一英寸IMX989
打哈欠真的会传染吗 环球快看点
科创板首批“重大违法退”锁定,注册制下退市生态加速构建 世界独家
Anki 无需网络如何同步 手机和电脑进行同步
盘点| 有哪些比较新的好用的React Native 开发工具? 天天最新
快看点丨技术干货|如何利用 ChunJun 实现数据实时同步?
当前快看:python工具模块介绍-time 时间访问和转换
厦门钨业于云南新设科技发展子公司:企查查APP显示,近日,云南厦钨科技发展有限公司成立,注册资本100万元,经营范围包含 全球热文
全球热头条丨电池原材料价格大跌坑到宁王?宁德时代回应
天天快讯:每小时1000公里 !我国“高速飞车”研制取得新进展
每日热讯!马斯克请回来的4D成像雷达 百度小米蔚来也押注了:战况很激烈
《天宫之镜》上线:首次慢直播中国空间站-天天实时
每日焦点!同飞股份4月24日盘中涨幅达5%
焦点报道:C#用dynamic一行代码实现反射操作
最后时刻单防福克斯!追梦:如果这让你感觉不好 我很抱歉
北京国际电影节有哪些看点?
最新:美国迪士尼乐园13米巨龙起火 观众还以为是新节目
全球速看:酷派COOL30 Pro来了:LCD水滴屏+2.4GHz八核CPU
特斯拉市值一周蒸发逾5000亿 分析师补刀:还能跌85%
一加Ace 2原神定制礼盒太火爆!3699元首销售罄
新资讯:全球连线|菲律宾榴莲加速进军中国
SpringSecurity框架教程-简介与SpringSecurity框架教程-入门案例准备工作_每日简讯
每日视讯:顶象推出应用隐私合规检测服务
如何用 DataTester 设计并创建可视化实验-全球微速讯
焦点观察:国泰4月24日起送2.7万张免费机票,附参加方法
天天热文:漯河郾城区新店镇:打好“三张牌” 聚力招商引资新突破
今日热闻!14款新车哪个最拉胯?中保研新一轮测试成绩公布:结果惊人
简讯:公司招聘运营称已婚双休未婚单休 求职者称歧视:网友热议没啥问题
宏碁发布史上最强迷你机圣盾X:i9-13900KS、RTX 4090无可挑剔|世界看热讯
微星推新BIOS限制7000X3D系列CPU电压 避免CPU毁损风险|天天视讯
世界快看点丨汽车级磷酸铁锂 针刺不起火!绿联、比亚迪户外电源3699元新低
新恒结衣的垣怎么念?新垣结衣个人介绍
中国第二大城市是哪个?中国第二大城市介绍
批准为荷是什么意思?批准为荷和批准为盼哪个更好?
孔雀蓝是什么颜色?孔雀蓝的rgb色值是多少?
任务管理器中的进程是什么意思?任务管理器中的进程怎么关闭?
MP3音乐文件破损是什么原因?MP3音乐文件破损怎么修复?
高血压的症状表现有哪些?高血压怎么调理才能彻底根除?
痛风一般有哪些症状?痛风会导致哪些严重后果?
可以用鼠标在电脑上写字的软件有哪些?怎么用鼠标拖动改变工作表标签的先后位置?
千与千寻迅雷下载 720p_千与千寻迅雷下载链接|环球快讯
Linux下Nginx安装证书_世界热门
2023最新kali安装教程 头条
分享一波免费可用的 API 大全|每日视点
笔记本怎么下载软件到桌面?笔记本怎么下载播放器?
环球今亮点!吃烧烤不应成为一场“战斗” 淄博在激流中需要保持清醒
世界球精选!一季度全国城镇新增就业297万人
环球滚动:景区完成特种设备隐患排查
全球热资讯!努比亚Z50把骁龙8 Gen2干到2500以内!倪飞:这才是旗舰焊门员
30寸巨屏+怀挡!别克全新君越内饰亮相:整车改头换面|报道
普通百姓也能用卫星遥感技术!这款手机APP快来了
全球观速讯丨李想:个人本意反对哨兵模式、延迟数月推出因考虑兼容车型
买了都说好!楠木之舟一体成型EVA拖鞋狂促:立省25元_环球视讯
归母净利润增幅超125% 铝合金精密压铸件龙头企业美利信登陆A股 最新快讯
使用nodejs编写api接口并部署到服务器上-前沿资讯
防伪底纹制作教程(防伪底纹制作)
Mysteel:家电原材料周报(4.17-4.21) 世界焦点
全球观焦点:比亚迪驱逐舰07动力信息曝光:加速7.9秒、亏电百公里油耗3.9升
每日报道:五一民宿现涨价毁约潮 房东各种奇葩借口:专家称构成欺诈可退一赔三
【新要闻】淄博烧烤小饼遭疯抢:老板因太忙暴瘦20斤
三摄镜头模组瞩目!大疆Mavic 3 Pro外观细节现身
世界聚焦:首次!中国绘制火星全球影像图发布:国内名镇上火星
成分股是什么意思在哪里能看到_成分股是什么意思-焦点精选
今日热文:年薪70万的全栈需要什么技能?
今日热门!证监会承接企业债发行审核职责落地
播报:“在香港生仔要够胆”?香港为“生育率全球最低”想招
小米空调突破性技术创新:获评国际领先
降价800元!华为Mate 50系列更新:鸿蒙更丝滑、4G信号比苹果13更快了
核污水马上排海!还敢吃海鲜吗 日本在售海豚肉测出汞含量超标近百倍 当前最新
鱼干的做法家常做法大的鱼干_鱼干的做法
企业债发审职责划转无缝衔接 证监会核发首批注册批文
每日信息:【国际大宗商品早报】农产品及金属期价全线下跌 国际油价震荡收涨
【读财报】3月上市猪企业绩向好:牧原、温氏销量领先 唐人神收入同比翻倍
广西壮族自治区宾阳县发布暴雨红色预警
老鼠半夜按门铃输密码吓坏房主 网友直呼不可思议:老鼠成精了|当前速看
环球报道:你在城市待遇如何?一季度全国居民收入榜出炉:12个省份跻身“万元户”
赢麻!美公司高管狂赞坐中国高铁比坐飞机还好:马斯克力挺-当前滚动
iPadOS 17支持设备清单曝光:多款经典机型被抛弃
bill to 环球新视野
学系统集成项目管理工程师(中项)系列11a_沟通管理(上)|每日关注
CSA动态 | 这个航天日,青年如何相聚?2023年中国宇航学会“青聚巢湖”青年科学家论坛即将开讲!
显示器屏幕为何越来越扁?原因找到了
暇日过在伯因而留饭_对于暇日过在伯因而留饭简单介绍 世界微速讯
全球观天下!cobalt strike渗透框架
【视频版】基于飞腾芯片的设计与调试入门指导-环球快资讯
软件工程基础作业——原型设计
【天天播资讯】Koordinator 一周年,新版本 v1.2.0 支持节点资源预留,兼容社区重调度策略
RTX 4090买一送一?满满都是套路啊
知名游戏网站VGtime最后3名编辑被开除:与资方冲突 不同意脚本取代原创 世界观天下
咸肉菜饭的做法_方法你学会了吗
环球新动态:法治微评:全力整治饭圈文化,严禁劣迹艺人随意变相复出捞金
爱书之人写给书的情歌-要闻