什么是em字体大小单位?它的像素数是多少?

sus*_*ani 36 css em font-size

我想知道em单位是什么,以及转换为像素(px)时1em是多少.我还在某处读到了一些关于IE的bug,要克服哪些正文字体大小应该设置为某些东西,但不能跟随太多.有人可以详细解释一下吗?

egr*_*nin 38

尽管你可能在其他地方读过,但em和px之间没有直接关系.

作为其中一个链接:

"em"值基于大写M的宽度

因此每种字体都会有所不同.窄字体可能与扩展字体具有相同的高度(以px为单位),但是em的大小会有所不同.

编辑三年后:

现在有很多来源说1em =字体大小(以px为单位).也就是说,当你写font-size:16px,然后1em = 16px.这仍然不同意Adobe源代码(其中1em =字体大小pt),但在任何一种情况下它都显得奇怪; 使用压缩字体时,em的大小会太大,而使用扩展字体则会太小.

我打算做一些测试页面并亲自看看.

并且:

我看到没有人(包括我)真的回答了这个问题(这有点隐藏):

我还在某处读到了一些即bug,并将其设置为体积字体大小

根据这个页面,你需要将它添加到你的CSS : html{ font-size:100%; }. 该页面已有六年了,我还没看过(数百条)评论,所以我不知道它是否仍然相关.

  • http://en.wikipedia.org/wiki/Em_(typography),引用Adobe(http://www.adobe.com/uk/type/topics/glossary.html).但是现在我读了它,那个页面也说"Em传统上被定义为当前面部和点大小的大写M的宽度.它更恰当地定义为当前点大小.例如,在12点类型,em是12点的距离." (3认同)
  • 对于 CSS 和计算机显示器来说,情况并非如此。阅读此内容:http://v1.jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css in css - em 和 px 实际上是相关的。基本上 1em 等于当前元素继承的字体大小。例如,您可以为正文元素设置字体大小,并让所有其他元素在其字体大小中使用“em”,并且它将相对于您在正文中设置的大小。这是使字体响应的好方法(您所需要做的就是更改正文的大小一次......) (2认同)

Mar*_*lis 18

em基于字母M并依赖于字体的M原则是一个经常被说明的神话!W3c em文档非常简洁地描述了ems和像素的确切关系.使用字母M来计算字体大小至少过于复杂和不必要.

'em'单位等于使用它的元素的'font-size'属性的计算值.例外情况是'em'出现在'font-size'属性本身的值中,在这种情况下它引用父元素的字体大小.它可用于垂直或水平测量.

以下是重点.

  1. 没有祖先放大,1em完全等于像素font-size属性.

  2. 使用x-ems或x-percent的祖先放大率意味着您只需乘以明显的比率x或x/100.因此,一个简单的java脚本循环将计算确切的字体大小,假设:(1)没有CSS来阻止java脚本; (2)某些祖先的字体大小以绝对单位设置.这是文档所讨论的计算值.手计算可以绕过CSS,但仍然必须在祖先链中找到绝对单位.

  3. 由于ems测量宽度,您始终可以通过创建1000 ems长的div并将其client-Width属性除以1000来计算确切的字体大小.由于ems四舍五入到最接近的千分之一,因此需要1000 ems以避免错误的像素截断.

  4. 您可能可以创建M原则失败的字体,因为em基于font-size属性而不是实际字体.假设您有一个奇怪的字体,其中M是其他字符大小的1/3,并且您的字体大小为10像素.您是否认为像素字体大小以某种方式保证最大字符高度,因此M不会是10像素而所有其他字符都是30像素?

警告

  1. (2)的一个主要警告是前单位的相对比率非常不稳定.在具有常量字体的相同浏览器中,相对比率可以随字体大小而变化.即使使用相同的字体大小和浏览器安全字体(例如Georgia),ex的相对比率也随浏览器而变化.如果你想要符合性,这是一个很好的理由,不使用ex单元.如果使用ex单元,则无法通过祖先链计算字体大小.


TAL*_*BOY 5

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

PxToEm