【发布时间】:2010-09-13 01:25:01
【问题描述】:
在 CSS 中设置字体大小时,我应该使用百分比值 (%) 还是 em?你能解释一下优点吗?
【问题讨论】:
-
在我看来 2016 年 em 和 % 没有区别。如果我输入 1.2 em,所有现代浏览器都认为我使用了 120%,例如,如果我使用 0.7 em,所有现代浏览器都认为我使用了 70%……这就是我在 CSS 中所经历的
在 CSS 中设置字体大小时,我应该使用百分比值 (%) 还是 em?你能解释一下优点吗?
【问题讨论】:
来自http://archivist.incutio.com/viewlist/css-discuss/1408
%: 一些浏览器不处理 字体大小的百分比,但解释 150% 为 150 像素。 (一些 NN4 版本, 例如。)IE也有问题 嵌套元素的百分比。它 似乎 IE 使用百分比相对于 视口而不是相对于 父元素。还有一个问题 (尽管根据 W3C 是正确的 规格),在 Moz/Ns6 中,你不能使用 相对于没有元素的百分比 指定的高度/宽度。
em:有时浏览器使用错误 参考尺寸,但相对 单位是最少的 问题。你可能会发现 不过有时会被解释为 px。
pt: 差别很大 决议,不应使用 用于展示。这对我们来说很安全 打印使用。
px:唯一可靠的绝对单位 屏幕。可能是错误的 虽然在印刷品中解释为 点通常由几个 像素,因此一切都变成了 小得离谱。
【讨论】:
两者都根据原来的大小调整字体大小。 1.5em 与 150% 相同。唯一的优势似乎是可读性,选择你最喜欢的。
【讨论】:
这是一个测试
这是一个测试
A List Apart 上有一篇关于网络排版的非常好的文章。
他们的结论:
在 ems 中调整文本和行高, 与指定的百分比 身体(和一个可选的警告 Safari 2),显示提供 准确、可调整大小的文本 当今常用的浏览器。这是 您可以将其放入工具包中的技术 袋子和使用作为最佳实践 在 CSS 中调整文本大小,同时满足两者 设计师和读者。
【讨论】:
line-heights 最好写成没有任何单位。这是规范允许的,并且完全避免了某些非常烦人的浏览器怪癖,当涉及到em-based line-heights
1。例如,iPhone 4 的物理屏幕宽度为 640 像素,但显示为 320“CSS”像素 (DPR=2)。所以网站不会显得更小!
正如 Galwegian 所提到的,px 是最可靠的网页排版,因为您在页面上所做的所有其他事情大多是针对计算机显示器进行布局的。绝对尺寸的问题在于 一些 浏览器 (IE) 不会缩放网页上的像素值元素,因此当您尝试放大/缩小时,除了那些元素之外,一切都会调整。
我不知道 IE8 是否正确处理了这个问题,但所有其他浏览器供应商都可以很好地处理像素,并且用户需要放大/缩小文本仍然是少数情况(SO 上的这个文本框可能是例外)。如果你想变得更脏,你总是可以添加一个 javascript 函数来增大你的文本大小,并为用户提供一个“小”/“大”按钮。
【讨论】:
对于 YUI,应该使用百分比。
【讨论】:
鉴于(几乎?)所有浏览器现在都在调整整个页面的大小,而不仅仅是文本,在可访问的字体大小调整方面,px 与 % 与 ems 的先前问题相当没有实际意义。
所以,答案是这可能无关紧要。使用适合您的任何东西。
%很好,因为它允许相对调整大小。
px很好,因为使用它时管理期望相当容易。
em也用于布局元素时很有用,因为它可以允许与文本大小相关的比例大小。
【讨论】:
em 相比。除此之外,我认为关于 SO 的答案应该力求永恒——毕竟它是一个知识库。编程的维基百科 :) 随着维基百科的更新以反映事实,我的拙见也应该如此回答。
关于css单元%和em的区别。
据我了解(至少在理论上/概念上,但可能不是这两个单元如何在浏览器中实现)这两个单元是等价的,即如果您将 em 值乘以 100 然后替换em 和 % 应该是一样的吧?
如果 em 和 % 之间确实存在一些真正的区别,那么有人可以解释一下(或提供解释的链接)吗?
(我想将我的这条评论添加到它所属的位置,即在"Liam, answered Sep 25 '08 at 11:21" 的答案下方缩进,因为我也想知道为什么他的答案被否决,但我不知道如何发表我的评论在那里,因此不得不写这个“线程全局”回复)
【讨论】:
当您使用它而不是字体大小时,真正的区别就很明显了。设置padding 的1em 与100% 不同。 em 总是相对于字体大小。但是% 可能与字体大小、宽度、高度以及其他一些我不知道的东西有关。
【讨论】: