2012-10-22 71 views
0

我正在处理一个旧的项目,它使用em的广泛的一切,从字体大小到布局(宽度,边距,填充等),它让我想知道是否实际上使用em的布局页面的好处作为字体?em单位的相关性?

我已经采取甚至没有使用em的字体,我觉得他们有点混乱,尤其是没有body { font-size: 62.5%; }技巧(which apparently is bad)。据我所知,现在的每个浏览器都可以正确调整px大小。

我不知道是否有即使使用EM是为移动设备带来的好处,因为据我所知,这个元标记应该让移动浏览器以标准尺寸

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 
显示象素没有任何好处

CSS 2.1 spec

参考像素是一个像素与96DPI的像素密度,并从一个臂的长度的读取器的距离的设备上的视觉角度。对于28英寸的标称臂长,因此视角约为0.0213度。对于手臂长度来说,1px因此相当于约0.26毫米(1/96英寸)。

我想我真正想要问的问题是,这样做EM的报价超过PX任何好处上浆布局和/或字体大小(比实际上其他时候EM的允许你创建现场字体resize- functionaltiy)?或者有vs无px更成为一种偏好问题?

回答

4

正如您所指出的那样,CSS-Pixels不再是真正的像素,主流浏览器也正确处理这些像素。

所以使用em的唯一用例是如果你真的想要某些东西与字体高度有关。例如你想默认有一个textarea“3 lines heigh”,你会给它一个高度:3em; 所以,即使在项目后期更改字体大小或其他任何内容,此textarea仍然是“3行高度”。

如果您不希望自己的定义实际上是相对于字体高度的,请不要使用em。

0

我知道的唯一好处是,如果用户觉得文本太小,可以在网页上调整em的大小。如果以像素为单位指定,则用户无法更改字体大小。这是我所知道的唯一好处。但是这只适用于旧版浏览器。现代浏览器可以调整任何文本的大小。就我个人而言,我从不使用em,只有像素。

+0

我相信IE仍然无法调整像素字体的大小,我知道其中一个主流浏览器不能。你是正确的,但扩展它的可访问性超过用户偏好。低视力的人需要增加字体大小来阅读一些网站。 –

0

问题是,你假设你知道一个像素是什么,它是多大。屏幕像素密度变化很大(某些手机的屏幕像素数多于桌面屏幕!),因此像素不是物理测量,不应该用于此。 em已经被定义为提供一个通用的物理尺寸,这个尺寸是可移植的,所以如果我在1em创建一个字符,它将在每个设备上大致相同的物理尺寸,这通常是我们想要做的(而不是挤压整个网络页面以不可读的大小移动到移动屏幕上)。因此,em是布局页面的首选方式。

+0

但是根据CSS规格,具有高DPI的设备应该基于它们的“像素”尺寸,而不是基于设备的实际像素尺寸,而是基于绝对测量(显然为0.26毫米) – Sean

+0

,尽管我想是否在非设备上这样做完全是另一回事 – Sean