CSS中设置字体大小时,我应该使用百分比值(%
)还是em?你能解释一下它的优点吗?
关于网页排版,A List Apart上有一篇非常不错的文章。
他们的结论是:
在ems中进行文字大小和行高的调整,并在body标签中指定百分比(对于Safari 2,还需要特殊注意),可以在当前所有主流浏览器上提供准确、可调整大小的文本展示效果。这是一种最佳实践的技术,您可以将其加入工具包,在CSS中使用它来调整文本大小,以满足设计师和读者的需求。
两者都根据原来的字体大小进行相对调整。1.5em与150%相同。唯一的优势似乎是可读性,选择自己更舒适的即可。
这是一个测试
这是一个测试
- Liam来自http://archivist.incutio.com/viewlist/css-discuss/1408
%:某些浏览器不支持使用百分比设置字体大小,但会将150%解释为150px。(例如一些NN4版本)。IE在嵌套元素上使用百分比也存在问题。它似乎使用相对于视窗而非父元素的百分比。另一个问题(尽管符合W3C规范),在Moz/Ns6中,不能使用未指定高度/宽度的元素作为参照使用百分比。
em:有时候浏览器会使用错误的参照大小,但在所有相对单位中,问题最少的是em。您可能会发现它有时被解释为像素。
pt:在不同分辨率下差异很大,不应用于屏幕显示。但是对于打印来说相当安全。
px:屏幕上唯一可靠的绝对单位。但在打印中可能会错误地解释为一个点通常由几个像素组成,因此所有东西都变得非常小。
当你不是用它来设置字体大小时,真正的区别就显现出来了。将 padding
设置为 1em
和设置为 100%
是不同的。 em
始终相对于字体大小。但是,%
可能相对于字体大小、宽度、高度以及其他一些我不知道的东西。
px
vs. %
vs. em
的问题已经不太重要了。
%
很好,因为它允许相对调整大小。
px
很好,因为在使用它时管理期望相当容易。
em
在用于布局元素时也可以很有用,因为它可以允许与文本大小相关的比例大小。
em
。除此之外,我认为 SO 上的答案应该努力做到永恒 -- 毕竟它是一个知识库。编程版的维基百科 :) 正如维基百科更新以反映事实一样,SO 的答案也应该如此,这是我的谦虚意见。 - Armen Michaeli正如Galwegian所提到的,px是Web排版中最可靠的单位,因为页面上的其他元素都是基于计算机屏幕进行布局的。绝对大小的问题在于一些浏览器(IE)不会缩放网页上的像素值元素,因此当您尝试缩放时,除了这些元素之外,所有内容都会进行调整。
我不知道IE8是否能够正确处理这个问题,但是所有其他浏览器供应商都可以很好地处理像素大小,并且用户需要放大/缩小文本仍然是少数情况(也许是SO上的此文本框选项除外)。如果您想真正做得更好,您可以添加一个Javascript函数来使文本大小变大,并向用户提供“小”/“大”按钮。
%
和 em
的区别。em
值乘以 100
,然后将 em
替换为 %
,它应该是相同的吗?Yahoo用户界面库(http://developer.yahoo.com/yui/)拥有一套不错的基础CSS类,用于“重置”浏览器特定设置,以便在所有(支持的)浏览器中显示网站的基础相同。
使用YUI时应该使用百分比。