查找/设置css行高默认值

Yar*_*rin 10 css user-agent cross-browser

我尝试在浏览器中规范化我的CSS时注意到的一个奇怪的事情是,h-elements和其他主要标记类型的默认行高属性在Chrome和Firefox等浏览器中是不同的,但未在用户代理处设置水平:

而且,像normalize.css这样的流行规范化器也不会处理这个问题.

所以我的问题是两部分:

  1. 如果未在用户代理级别设置行高,则默认值来自何处?
  2. 我宁愿不自己规范化线高,但如果必须的话,某些默认值的好例子在哪里?

mah*_*lie 22

我同意"事情并不完全相同"在某种程度上是一种愚蠢的行为,特别是因为甚至IE也采用了相当好的标准采用.

相对(120%,1,1em)行高值基于计算的字体大小,Normal应该基于字体大小,但它可以并且确实因浏览器而异,正如您可以通过打开这个看到的FF和Chrome中的示例:http://jsfiddle.net/mahalie/BSMZe/6/

我通常会将HTML5 Boilerplate看作最佳实践的队列,因为它非常受欢迎(因此经过严格的审查/审查.他们使用:

body { margin: 0; font-size: 13px; line-height: 1.231; }
Run Code Online (Sandbox Code Playgroud)

他们对它的讨论很有意思,虽然没有透视是明显的赢家:https: //github.com/h5bp/html5-boilerplate/issues/724

  • 链接现在应该是https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css (4认同)
  • HTML5 Boilerplate现在使用`line-height:1.4;`.你可以在[CSS中的这一行]上看到它(https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css#L23). (3认同)