在CSS中使用相对字体大小有什么意义吗?

9

我已经阅读了很多关于使用相对大小或绝对大小进行字体调整的利弊。固定大小在IE6中无法缩放,但这在当前并不是什么大问题。无障碍性很重要,但我认为所有良好的无障碍软件都能够处理这些问题?

我想主要取决于您是否希望能够使用一个规则更改所有字体大小(即您设置的默认字体大小),还是希望能够在不影响嵌套元素的情况下更改某个字体大小(这是最让我感到沮丧的事情!)。

有人有什么建议吗?

7个回答

4
根据 YUI Font CSS,始终使用百分比作为单位,因为它们呈现更加一致,而不像 ems 那样,并且因为它们允许用户自主调整大小(与像素不同)。相对字体大小在像 YUI 这样的框架中运作得非常好。特别是它们规范了不同浏览器中字体的工作方式。个人而言,我偶尔会添加绝对像素 px,但通常只用于必须与其他设计元素(如菜单)在大小上匹配的文本。当您将百分比分配给某个元素,然后将不同的百分比分配给包含的元素时,% 的效果会受到影响。但这是我发现的唯一真正的问题。

1
是的,菜单示例正是我所考虑的情况。如果您决定使父菜单项变大,则需要重新计算百分比以使子项再次变小。 - DisgruntledGoat

2
正如这篇CSS字体大小文章所解释的那样:

理想情况下?最好的度量单位是根本没有!让用户代理根据用户的偏好来确定显示 - 但是!我们也知道,在大多数设计中,这不是一个非常实际的方法。个人而言?我更喜欢“.em”和“.px”的混合灵活性 - 随着用户代理变得更加“用户友好”,设计师的尺寸大小将不会像现在一样具有潜在的问题或争议。

不过,不要忘记相对字体大小可以用于除了字体大小之外的其他事情!


2
除了在IE6中可以调整大小(仍然是非常流行的浏览器),相对字体使您更有可能默认匹配用户的需求,而无需他们进行调整(或者如果我们谈论的是经验不足的用户,则无需知道如何调整)。用户或代表用户的人可能已经增加了字体大小作为DPI、操作系统或浏览器自定义的好处(例如视力障碍),使用相对大小,您可以利用这些信息为他们服务。
对于必须与以像素为单位的其他页面元素(即图像)大小匹配的文本,请使用“px”。对于其余部分,“%”。该问题假设使用相对字体大小在某种程度上很困难;我认为并不是。
通常,您会在正文中使用一个以“%”为单位的字体大小,并在其他比一般正文重要或不太重要的页面元素上使用几个字体大小。您应该很少有足够多的嵌套级别和嵌套字体大小,以至于您无法轻松跟踪它们。
与父元素大小相关的尺寸并没有特别难以理解的地方,这个属性可能很有用:如果您想要更改页面或其中一部分的基本字体大小,您只需更改一次,而不必逐个修复包含元素上的每个字体大小声明。
与相对大小唯一真正的困难是当您将一个块的大小设置为相对大小,但您想将其内部的某些内容调整回原始大小时。您可以计算出与父元素百分比相反的百分比,但这可能是一个丑陋的数字,并且如果您不能以完全准确的方式说明它,则可能会出现1px的舍入误差。在这种偶发情况下,退后一步,查看选择器,看看是否可以更有选择性地应用尺寸以避免不必要的撤消。
诚然,如果我们有一个仅与用户默认大小相关而不是父级大小相关的单位,以解决此类问题,那将是很好的。不幸的是,唯一像这样工作的值是最小/较小/小/中等等关键字,除了历史浏览器一致性问题外,还相当粗糙。

1

OS X和Windows在处理至少pt字体大小方面有所不同,因此这肯定是完全行不通的。另一方面,有没有任何充分的理由使用相对字体大小呢?并不是说这是一个权衡利弊、双方都有好的论点的辩论。相反,在一方面有几个优点(可能并不总是显而易见),但另一方面只有表面上的优点,稍加探究便证明其毫无价值。1

实际上,我只能想到 一个绝对字体大小的论点,即通过复制设计软件中使用的字体大小来更轻松地实现完成的设计的CSS。实际上,一个一致的设计将只使用少量不同的字体大小,它们是彼此简单比率的(比如80%),因此可以很容易地用em%表示。


1) 你说:

或者你想在不影响嵌套元素的情况下改变某个字体大小

你具体指的是什么?CSS 的整个重点在于,你(通常)相对于其父元素更改元素的属性。为什么这会成为问题呢?

整个辩论有点像“不要使用布局表格”的辩论。对于非专业人士来说,这些争论可能看起来很教条主义,但无论如何都没有理由不遵循它们。这并不是说要求提供论据是错误的!但是有太多毫无意义的违反这个规则。


2) 仅供参考,我并不是一名专业的网页设计师。请以我的技术观点为参考,但这个论点与所使用的技术无关。


1

想象一下你的父母或祖父母看着你的网页,戴着双光镜(或三光镜)和不戴眼镜的情况。如果他们因为你把所有字体都设置成8px而无法阅读,他们可能会去其他地方。如果他们点击“文本大小>>最大”却没有任何反应,他们可能会去其他地方。

考虑到-至少在美国-很多上网者是年龄较大、有时间、有钱但视力逐渐衰退的人群,对于公共网站使用em字体似乎非常有益;-)


0
唯一一个有效的重要原因是很多人仍在使用IE6。仅此而已。 也许在2008年底,不再关注IE6可能是一件好事情。但是忽视IE6是很难的。我在意大利的一家大公司担任Web设计/开发工作,我们的许多员工或客户正在使用IE6浏览互联网。 为什么?他们没有管理员权限,无法在计算机上安装任何软件,系统管理员总是太忙于升级每个办公室的计算机。当他们的硬盘需要更换时,这些人可能会升级到IE7(类似于Firefox是一个梦想)。 这种情况可能只发生在意大利。但我不敢打赌。

Firefox可以安装到用户本地目录中,而且可以正常工作,不需要管理员权限。 - Evan Teran
没错,但大多数普通用户并不知道Firefox的存在。 - alexmeia

0

使用相对单位来设置字体大小、行高、上/下边距和填充,可以在用户增大/缩小文本大小时保持排版比例不变。排版和设计人员会很欣赏这一点 =)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接