2013-03-09 61 views
1

我已经阅读了很多关于这个主题的文章(并且搜索了Q & A),并且我发现了,但我仍然不明白em单位和百分比之间的区别是什么。帮帮我?em单位和百分数有什么区别?

P.S. 我已经看到了这个代码示例:

p { font-size: 10px; } 
p { line-height: 120%; } /* 120% of 'font-size' */ 

那是什么意思?为什么人人都想将行高设置为字体大小的百分比值?

+1

为什么会有人想要设置行高*百分比值以外的任何*其他*?这样,线条高度总是与字体高度成正比。 – JJJ 2013-03-09 13:43:14

+0

嗯。也许我应该三思而后行。其他属性呢?在那里它不会那样工作,对吧? – 2013-03-09 13:44:37

+1

他们是两个不同的单位;他们有不同的定义。所以这个问题没有什么意义。你可能想问一些不同的东西,但你的代码示例甚至不包含'em'单元。 – 2013-03-09 13:55:33

回答

4

好的,所以我决定总结答案。

  • 行高的百分比值是相对于当前的字体大小。
  • em单位始终与字体大小有关。
  • 百分比取决于上下文。例如,如果它们用于字体大小,它们将与当前字体大小相关;如果它在高度上,它们将相对于高度。
  • 当父标签的字体大小被声明为“小”,“中”或“大”时,它会发生一些变化,因为这些值受浏览器设置的影响。在此背景下1EM = \ = 100%,1EM似乎使设置多一点“小”或者多一点“大”比100%,读到它here.

谢谢你,伙计们。 :)

2

行高通常是字体大小的倍数。事实上,这是对你没有指定一个单元中唯一的值:

p { line-height: 1.2; } /* = 1.2em = 1.2*font-size = 120% of font-size */ 

如果行高是成比例的字体大小,更容易调整字体,而不必担心关于固定的线路高度。

+3

在这种情况下('line-height'),值得注意的是,百分比和em单位大致相同。 1em = 1行高 – jrajav 2013-03-09 13:50:06

+0

你是什么意思“一般”? :) – 2013-03-09 19:11:58

+0

对于线高度总是 – Harmen 2013-03-09 19:21:32

2

1em = 100%,2em = 200%,1,4em = 140%等等。但是,它实际上是依赖于特定的。 我认为ems更“移动友好”,但这取决于开发者。

在CSS中使用百分比值,因为用户可以有不同的屏幕分辨率。例如,当您不想在您的js生成的内容中使用空格时。 1em表示“equeal为实际字体大小”,2“表示ems适合用户设置。

因此,当父标签的字体大小被声明为“小”,“中”或“大”时,它会发生一些变化,因为这些值受浏览器设置的影响。在此背景下1EM = \ = 100%,1EM似乎使设置多一点“小”或超过100%,更有点“大”,在这里读到它:

http://kyleschaeffer.com/user-experience/css-font-size-em-vs-px-vs-pt-vs/

可能有性能差异,但这取决于浏览器。

+0

这正是我一直在寻找的答案。你告诉我,除了动态支持之外,ems和百分比实际上是一样的。我是否正确? 我真的不明白你在说什么。如果它们是相同的,但ems支持得更好,为什么我们不使用ems并丢弃百分比? – 2013-03-09 14:23:42

+0

使用它有一些细微的差异。对于我所知道的你使用EM来获取字体大小。根据我的经验,ems比手机的百分比更合适。对我来说,它只是减少了麻烦。 我忘了一件事。是的,1em = 100%,但是当父标签的字体大小被声明为“小”,“中”或“大”时,它会稍微变化 - 阅读我的编辑。 – 2013-03-09 15:11:34

+0

我已经阅读过这篇文章,现在我对它有了更多的了解。但仍然...我不明白为什么有这个浏览器的设置问题;我以为他们应该是相同的... – 2013-03-09 15:45:45