我想知道em的单位是什么,以及当转换为像素(px)时,1em是多少。我也在某个地方读到了一些IE的bug,为了克服身体字体大小应该设置为什么,但我不能遵循太多。有人能详细解释一下吗?
em
px
ftf50wuq1#
不管你在其他地方读到什么,em和px之间没有直接的关系。正如其中一个链接所述:“em”值基于大写字母M的宽度所以每种字体都不一样。窄字体可能与扩展字体具有相同的高度(以px为单位),但em大小不同。
三年后编辑:
现在有很多来源说1 em =字体大小(px)。也就是说,当你写font-size:16px时,那么1 em = 16 px。这仍然与Adobe源代码不一致(它说1 em = pt中的字体大小),但在任何一种情况下,它似乎都很奇怪; EM尺寸对于压缩字体将太大,而对于扩展字体将太小。我将做一些测试页,自己看看。
font-size:16px
pt
还有:
我发现没有人(包括我)实际上回答了这个问题(这是一种隐藏):我也在某处读到一些ie的错误,并克服了设置身体字体大小的东西根据this page,您需要将以下内容添加到您的css中:html{ font-size:100%; }。那个页面已经有六年的历史了,我还没有读过(数百条)评论,所以我不知道它是否仍然相关。
html{ font-size:100%; }
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。
zsbz8rwp3#
它是根据你的身体字体大小计算出来的。您可以使用像素到em转换器来找出它在您的网站上的确切内容。PxToEm
ppcbkaq54#
em是最初在印刷排版中使用的度量(根据维基百科)。以下是一些需要考虑的事项:如果em被定义为12 pt类型,则em是打印页面的12/72英寸;但是如果你定义一个em为16 px,它的宽度以英寸为单位取决于媒体的分辨率。(注:在移动的设备出现之前,72 ppi到120 ppi的分辨率曾经被认为是“安全浏览器”的标准。)因此,当您的用户使用300 px宽度的设备时,1 em作为16 px是一个很大的“真实的地产”。在我看来,em测量的最佳用途是定义文本段落,以有效地平衡白色,而不是页面布局或定位。
kfgdxczn5#
em单位以字母“M”命名,在排版中有着悠久的传统,它被用来测量水平宽度。例如,在美国文本中经常发现的长破折号(--)被称为“em-dash”,因为它历史上与字母“M”具有相同的宽度。它的较窄的表亲(-),经常在欧洲文本中发现,类似地被称为“en-dash”。“em”的意思在这些年里已经改变了。并非所有字体都有字母“M”(例如中文),但所有字体都有高度。因此,这个术语的意思是字体的高度,而不是字母“M”的宽度。摘自《惊人的em单元和其他最佳实践》https://www.w3.org/WAI/GL/css2em.htm
xkrw2x1b6#
EM是与字体的点大小成比例的测量单位。
uidvcgyl7#
此链接可以帮助您http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css正如该文章所引述的:我们知道1em * 总是 * 等于父元素的字体大小,因此:对于您的书签:Pixel to ems conversion table字体大小。
xn1cxnb48#
em与百分比几乎相同,我建议阅读http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/
8条答案
按热度按时间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%; }
。那个页面已经有六年的历史了,我还没有读过(数百条)评论,所以我不知道它是否仍然相关。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。
zsbz8rwp3#
它是根据你的身体字体大小计算出来的。您可以使用像素到em转换器来找出它在您的网站上的确切内容。
PxToEm
ppcbkaq54#
em是最初在印刷排版中使用的度量(根据维基百科)。以下是一些需要考虑的事项:如果em被定义为12 pt类型,则em是打印页面的12/72英寸;但是如果你定义一个em为16 px,它的宽度以英寸为单位取决于媒体的分辨率。(注:在移动的设备出现之前,72 ppi到120 ppi的分辨率曾经被认为是“安全浏览器”的标准。)因此,当您的用户使用300 px宽度的设备时,1 em作为16 px是一个很大的“真实的地产”。在我看来,em测量的最佳用途是定义文本段落,以有效地平衡白色,而不是页面布局或定位。
kfgdxczn5#
em单位以字母“M”命名,在排版中有着悠久的传统,它被用来测量水平宽度。例如,在美国文本中经常发现的长破折号(--)被称为“em-dash”,因为它历史上与字母“M”具有相同的宽度。它的较窄的表亲(-),经常在欧洲文本中发现,类似地被称为“en-dash”。
“em”的意思在这些年里已经改变了。并非所有字体都有字母“M”(例如中文),但所有字体都有高度。因此,这个术语的意思是字体的高度,而不是字母“M”的宽度。
摘自《惊人的em单元和其他最佳实践》https://www.w3.org/WAI/GL/css2em.htm
xkrw2x1b6#
EM是与字体的点大小成比例的测量单位。
uidvcgyl7#
此链接可以帮助您http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css
正如该文章所引述的:
我们知道1em * 总是 * 等于父元素的字体大小,因此:
对于您的书签:Pixel to ems conversion table字体大小。
xn1cxnb48#
em与百分比几乎相同,我建议阅读http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/