css 什么是em字体大小单位?像素是多少?

lxkprmvk  于 2023-05-08  发布在  其他
关注(0)|答案(8)|浏览(172)

我想知道em的单位是什么,以及当转换为像素(px)时,1em是多少。我也在某个地方读到了一些IE的bug,为了克服身体字体大小应该设置为什么,但我不能遵循太多。有人能详细解释一下吗?

ftf50wuq

ftf50wuq1#

不管你在其他地方读到什么,em和px之间没有直接的关系。
正如其中一个链接所述:
“em”值基于大写字母M的宽度
所以每种字体都不一样。窄字体可能与扩展字体具有相同的高度(以px为单位),但em大小不同。

三年后编辑:

现在有很多来源说1 em =字体大小(px)。也就是说,当你写font-size:16px时,那么1 em = 16 px。这仍然与Adobe源代码不一致(它说1 em = pt中的字体大小),但在任何一种情况下,它似乎都很奇怪; EM尺寸对于压缩字体将太大,而对于扩展字体将太小。
我将做一些测试页,自己看看。

还有:

我发现没有人(包括我)实际上回答了这个问题(这是一种隐藏):
我也在某处读到一些ie的错误,并克服了设置身体字体大小的东西
根据this page,您需要将以下内容添加到您的css中:html{ font-size:100%; }。那个页面已经有六年的历史了,我还没有读过(数百条)评论,所以我不知道它是否仍然相关。

j9per5c4

j9per5c42#

em基于字母M并依赖于字体的M原则是一个经常被陈述的神话!!W3c em documentation非常简洁地描述了ems和像素之间的关系。使用字母M来计算字体大小至少过于复杂和不必要。
“em”单元等于使用它的元素的“font-size”属性的计算值。例外情况是'em'出现在'font-size'属性本身的值中,在这种情况下,它引用父元素的字体大小。它可以用于垂直或水平测量。
以下是要点。
1.如果没有祖先放大,1 em完全等于pixel font-size属性。
1.使用x-ems或x-percent的祖先放大意味着您只需乘以明显的比率x或x/100。因此,一个简单的java-script循环将计算精确的字体大小,假设:(1)没有C.S.S来阻止java-script;和(2)一些祖先以绝对单位设置其字体大小。这就是文档中所讨论的计算值。手工计算可以绕过C.S.S.,但必须在祖先链中找到绝对单元。
1.因为ems是测量宽度的,所以您总是可以通过创建一个1000 ems长的div并将其client-Width属性除以1000来计算精确的字体大小。由于ems被四舍五入到最接近的千分之一,因此需要1000 ems来避免错误的像素截断。
1.您可能可以创建一个M原则失败的字体,因为em是基于font-size属性而不是实际字体。假设你有一个奇怪的字体,其中M是其他字符大小的1/3,而你的字体大小为10像素。难道你不认为像素字体大小在某种程度上保证了最大的字符高度,所以M不会是10像素,而所有其他字符都是30像素吗?

警告

1.对(2)的一个主要警告是,ex单位的相对比例非常不稳定。在同一个字体不变的浏览器中,相对比例可以随字体大小而变化。ex的相对比例也会随着浏览器的变化而变化,即使使用相同的字体大小和浏览器安全字体(如格鲁吉亚)。这是一个很好的理由,永远不使用前单位,如果你想一致。如果使用ex单元,则不可能通过祖先链计算font-size。

zsbz8rwp

zsbz8rwp3#

它是根据你的身体字体大小计算出来的。您可以使用像素到em转换器来找出它在您的网站上的确切内容。
PxToEm

ppcbkaq5

ppcbkaq54#

em是最初在印刷排版中使用的度量(根据维基百科)。以下是一些需要考虑的事项:如果em被定义为12 pt类型,则em是打印页面的12/72英寸;但是如果你定义一个em为16 px,它的宽度以英寸为单位取决于媒体的分辨率。(注:在移动的设备出现之前,72 ppi到120 ppi的分辨率曾经被认为是“安全浏览器”的标准。)因此,当您的用户使用300 px宽度的设备时,1 em作为16 px是一个很大的“真实的地产”。在我看来,em测量的最佳用途是定义文本段落,以有效地平衡白色,而不是页面布局或定位。

kfgdxczn

kfgdxczn5#

em单位以字母“M”命名,在排版中有着悠久的传统,它被用来测量水平宽度。例如,在美国文本中经常发现的长破折号(--)被称为“em-dash”,因为它历史上与字母“M”具有相同的宽度。它的较窄的表亲(-),经常在欧洲文本中发现,类似地被称为“en-dash”。
“em”的意思在这些年里已经改变了。并非所有字体都有字母“M”(例如中文),但所有字体都有高度。因此,这个术语的意思是字体的高度,而不是字母“M”的宽度。
摘自《惊人的em单元和其他最佳实践》https://www.w3.org/WAI/GL/css2em.htm

xkrw2x1b

xkrw2x1b6#

EM是与字体的点大小成比例的测量单位。

uidvcgyl

uidvcgyl7#

此链接可以帮助您http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css
正如该文章所引述的:
我们知道1em * 总是 * 等于父元素的字体大小,因此:
对于您的书签:Pixel to ems conversion table字体大小。

相关问题