CSS中的字体大小-%还是em?

CSS中的字体大小-%还是em?,css,fonts,font-size,Css,Fonts,Font Size,在CSS中设置字体大小时,我应该使用百分比值(%)还是em?你能解释一下它的优点吗?来自 %:某些浏览器无法处理 字体大小的百分比,但解释 150%为150px。(部分NN4版本, 例如)IE也有问题 嵌套元素上的百分比。信息技术 似乎IE使用的百分比相对于 视口,而不是相对于 父元素。还有一个问题 (尽管根据W3C标准是正确的 规格),在Moz/Ns6中,您不能使用 相对于不含元素的元素的百分比 指定的高度/宽度 em:有时候浏览器使用错误的 参考尺寸,但为相对尺寸 这是一个最少的单位 问题。

在CSS中设置字体大小时,我应该使用百分比值(
%
)还是
em
?你能解释一下它的优点吗?

来自

%:某些浏览器无法处理 字体大小的百分比,但解释 150%为150px。(部分NN4版本, 例如)IE也有问题 嵌套元素上的百分比。信息技术 似乎IE使用的百分比相对于 视口,而不是相对于 父元素。还有一个问题 (尽管根据W3C标准是正确的 规格),在Moz/Ns6中,您不能使用 相对于不含元素的元素的百分比 指定的高度/宽度

em:有时候浏览器使用错误的 参考尺寸,但为相对尺寸 这是一个最少的单位 问题。你可能会找到它 但有时解释为px

pt:这两种方法有很大不同 决议,不应使用 用于显示。对我来说很安全 不过还是要打印使用

px:计算机上唯一可靠的绝对单元 屏幕。这可能是错误的 但在印刷品中解释为 点通常由几个部分组成 像素,因此一切都变得 小得可笑。


两者都会根据字体大小调整字体大小。1.5em与150%相同。唯一的优势似乎是可读性,选择你最喜欢的。

上有一篇关于网络排版的非常好的文章

他们的结论是:

在ems中调整文本大小和行高, 以在 主体(以及可选的 Safari 2)提供了 准确的、可调整大小的文本 现在常用的浏览器。这是 一种可以放在工具箱中的技术 将其打包并用作 在CSS中调整文本大小,以满足 设计师和读者


正如Galwegian所提到的,px是最可靠的网络排版,因为你在页面上所做的一切都是在电脑显示器上进行的。绝对大小的问题在于,一些浏览器(IE)无法缩放网页上的像素值元素,因此当您尝试放大/缩小时,除了这些元素之外,其他所有元素都会调整

我不知道IE8是否能正确处理这个问题,但所有其他浏览器供应商都能很好地处理像素,用户需要放大/缩小文本的情况仍然很少(这个文本框可能是例外)。如果你真的想变脏,你可以添加一个javascript函数来增大你的文本大小,并为用户提供一个“小”/“大”按钮。

)有一组很好的基本css类,用于“重置”特定于浏览器的设置,这样所有(受支持的)浏览器显示站点的基础都是相同的

对于YUI,应该使用百分比。

鉴于(几乎?)所有浏览器现在都将页面作为一个整体来调整大小,而不仅仅是文本,以前的
px
%
em
s在可访问字体大小调整方面的问题相当没有意义

所以,答案是这可能并不重要。使用任何适合你的东西

%
很好,因为它允许相对调整大小

px
很好,因为使用它时很容易管理期望值

em
也用于布局元素时非常有用,因为它允许按比例调整与文本大小相关的大小


关于css单元
%
em
之间的差异

据我所知(至少在理论上/概念上,但可能不是这两个单元在浏览器中的实现方式),这两个单元是等效的,即,如果将
em
值乘以
100
,然后将
em
替换为
%
,那么这两个单元应该是相同的吗

如果em和%之间确实存在一些差异,那么有人可以解释一下(或者提供一个链接来解释)


(我想把我的这条评论添加到它应该属于的地方,也就是说,
“Liam在08年9月25日11:21回答了这个问题,因为我也想知道为什么他的答案被否决了,但我不知道如何把我的评论放在那里,因此不得不写这个“线程全局”的回复)

当您不将其用于字体大小时,真正的区别就显而易见了。设置
1em的
填充
100%
不同
em
始终与字体大小相关。但是
%
可能与字体大小、宽度、高度以及其他一些我不知道的事情有关。

关于pt的事情。我就/进行了激烈的辩论。关于那件事(和丢失)。我和你的观点相同,很高兴知道有人分享这个观点:)你真的是说,如果我使用字体大小的百分比,一些Netscape Navigator 4用户可能无法正确查看我的页面吗?引用的讨论是从2002年开始的。这是否仍然相关?是否有任何浏览器正在使用em或%Bug?引用浏览器中20年前的Bug不是一个有用的答案。如果使用zoom,IE7可以很好地缩放像素值。IE6没有缩放功能,只有文本大小。缩放成为一项要求,因为设计师使用固定的像素比例,而不是允许页面随着文本大小的变化而回流。这仍然是IE6的一个问题,但是,同样,IE6的所有问题仍然存在。虽然我过去因为这个原因避免使用px,但网页整体缩放的概念(相对于文本的jsut)已经成为标准,我发现自己使用px的频率更高。有人能向我解释为什么这会被否决吗?这正是我理解em和百分比之间差异的方式。现在使用一个比另一个没有任何好处。重要的是,你使用的字号与基本字号相对应。谢谢李,我刚刚在IE6、IE7、Firefox 3、Safari 3、Opera 9.5和Google Chrome中测试了这一点,所有这些都在Windows上,对我来说都是一样的<猪圈