字体大小在CSS – %或EM?

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

在A List Apart上有一个非常好的网页排版文章。

他们的结论:

通过在主体中指定的百分比(以及对Safari 2的可选警告)调整ems中的文本和行高,显示了在当今常用的所有浏览器中提供准确,可resize的文本。 这是一种可以放在工具包中的技术,并且可以用来作为CSS中的文本大小的最佳实践,以满足devise师和读者的需求。

http://archivist.incutio.com/viewlist/css-discuss/1408

%:某些浏览器不处理字体大小的百分比,但将150%解释为150像素。 (例如一些NN4版本。)IE也有嵌套元素的百分比问题。 看来IE浏览器使用百分比相对于视口,而不是相对于父元素。 另一个问题(尽pipe根据W3C规范正确),在Moz / Ns6中,不能使用相对于没有指定高度/宽度的元素的百分比。

em:有时候浏览器会使用错误的引用大小,但是相对的单位是最less的问题。 有时你可能会发现它被解释为px。

pt:分辨率差别很大,不应该用于显示。 虽然打印使用是相当安全的。

px:屏幕上唯一可靠的绝对单位。 这可能是印刷错误的解释,因为一个点通常由几个像素组成,因此一切都变得非常小。

两者都调整相对于它的字体大小。 1.5em与150%相同。 唯一的好处似乎是可读性,select你最舒服的。

鉴于(近?)所有的浏览器现在调整整个页面的大小,而不仅仅是文本,在可访问字体大小调整方面,以前的px% vs em的问题是相当没有意义的。

所以,答案是这可能没有关系。 使用任何适合你的作品。

%很好,因为它允许相对resize。

px是不错的,因为使用它时pipe理期望是相当容易的。

em也可用于布局元素,因为它可以允许与文本大小相关的比例大小。

另外一个非常有用的链接: http : //www.w3schools.com/css/css_font.asp

关于css单位%em之间的差异。

据我所知(至less在理论上/概念上,但可能不是如何在浏览器中实现这两个单位)这两个单位是等价的,即如果你用100乘以你的em值,然后用%replaceem ,它应该是一样 ?

如果实际上em和%有真正的区别,那么有人可以解释它吗(或提供一个解释的链接)?

(我想添加这个评论,它属于我的意思,即在“答案"Liam, answered Sep 25 '08 at 11:21"下面"Liam, answered Sep 25 '08 at 11:21"因为我也想知道为什么他的答案是downvoted,但我不能弄清楚如何把我的评论,因此不得不写这个“全球线程”答复)

正如Galwegian所提到的,px是网页印刷最可靠的,因为你在网页上做的所有事情大都是参照电脑显示器进行布置的。 绝对大小的问题是, 某些浏览器(IE)不会缩放网页上的像素值元素,所以当您尝试放大 /缩小时,除了这些元素之外,所有内容都会调整。

我不知道IE8是否能够正确处理这个问题,但所有其他浏览器厂商都能很好地处理像素,而且用户需要放大/缩小文本(SO上的这个文本框也许是例外)仍然是less数情况。 如果你想变得非常肮脏,你总是可以添加一个JavaScriptfunction,使您的文字大小更大,并提供一个“小”/“更大”的button给用户。

雅虎用户界面库( http://developer.yahoo.com/yui/ )有一个很好的基础CSS类用于“重置”浏览器的具体设置,以便显示网站的基础是相同的所有(支持)浏览器。

与YUI一个应该使用百分比。