em单位的相关性?

时间:2012-10-22 12:51:50

标签: html css css3 liquid-layout

我正在开发一个旧项目,它正在广泛地使用em,从字体大小到布局(宽度,边距,填充等),它让我想知道使用em来布局页面是否有任何好处还有字体?

我甚至没有将em用于字体,我发现它们有点令人困惑,特别是没有body { font-size: 62.5%; }技巧(which apparently is bad)。据我所知,现在每个浏览器都适当地调整了px。

我不知道使用em来获取移动设备的好处是否有任何好处,据我所知,这个元标记让移动浏览器以标准尺寸显示像素< / p>

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

来自CSS 2.1 spec

  

参考像素是设备上一个像素的视角,像素密度为96dpi,距离读取器的臂长度。对于标称臂长28英寸,视角因此约为0.0213度。对于手臂长度的读数,1px因此对应于约0.26mm(1/96英寸)。

我想我真正想问的问题是,在调整布局和/或字体大小时,em是否提供了超过px的任何好处(除了em允许你创建现场字体resize-functionaltiy的事实)?或者em vs px更多只是成为一个偏好的问题?

3 个答案:

答案 0 :(得分:4)

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

因此,使用em的唯一用例是,如果你真的想要一些相对于字体高度的东西。

例如,你想要一个textarea默认为“3行高”,你会给它高度:3em; 因此,即使在项目后期更改字体大小或其他任何内容之后,此文本区域仍将是“3行高”。

如果您不希望您的定义实际上与字体高度相关,请不要使用em。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

问题在于您假设您知道像素是什么以及它的大小。屏幕像素密度差别很大(有些手机的像素比桌面屏幕更多!)因此像素不是物理测量,不应该用于它。已经定义了em来提供可移植的通用物理大小,这样如果我在1em创建一个角色,它将在每个设备上大致相同的物理尺寸,这通常是我们想要做的(而不是挤压整个网络)以不可读的大小进入移动屏幕的页面)。因此,em是布局页面的首选方式。