【问题标题】:Finding/setting css line-height defaults查找/设置 css 行高默认值
【发布时间】:2011-10-21 12:39:55
【问题描述】:

在尝试跨浏览器规范化我的 css 时,我注意到的一件奇怪的事情是,h 元素和其他主要标签类型的默认行高属性在 Chrome 和 Firefox 等浏览器中是不同的,但在用户代理级别:

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

所以我的问题是两个部分:

  1. 如果没有在用户代理级别设置行高,那么默认值是从哪里来的?
  2. 我宁愿自己不规范行高,但如果必须这样做,哪里有一些默认值的好例子?

【问题讨论】:

  • herehere
  • @Yarin - 开玩笑 - 我真的不明白你需要什么?默认行高是您作为设计师为您的页面设计决定的。你应该把它设置在你的CSS之上。浏览器默认是您在链接 (html.css) 中发布的内容,这就是它的来源。
  • @easwee- 正如我的问题所述,行高 css 值未在默认浏览器 css 中设置,因此我试图了解跨浏览器差异的来源。恕我直言,如果您之前从未处理过规范化 CSS,那么您就不需要处理这个问题。
  • @Yarin - line-height 由用户代理设置,因为它是根据某个元素中使用的最大字体计算的。但是是的 - 我不能告诉你哪个浏览器脚本计算这个 - 这是一个浏览器的事情,我从不关心规范化 css。我发现过度使用它,客户通常不会为此付费。
  • 这就像在问,我们是否需要从世界上消除疾病。只要你有药,给出的答案就是“不”。是否需要在每个浏览器中体验完全相同的网站。是的!但由于变量太多、操作系统、屏幕分辨率、浏览器版本、渲染引擎等等,这是不可能的,所以给出的借口是“不”。

标签: cross-browser user-agent css


【解决方案1】:

我同意“事情并不意味着完全相同”在某种程度上是一种逃避,尤其是即使 IE 也采用了相当不错的标准。

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

我通常会向HTML5 Boilerplate 寻求最佳实践队列,因为它非常受欢迎(因此经过严格审查/受到大量审查。他们使用:

body { margin: 0; font-size: 13px; line-height: 1.231; }

他们对此的讨论非常有趣,尽管没有任何观点是明显的赢家: https://github.com/h5bp/html5-boilerplate/issues/724

【讨论】:

  • @mahalie- 感谢您站出来给出真正的答案!很棒的链接。 +2
  • 这已经过时了,因为他们现在通过让浏览器使用它的默认值,显然正在使用不同(并且更易于访问)的方法。
  • HTML5 Boilerplate 现在使用line-height: 1.4;。你可以在this line in the CSS看到它。
  • 不敢相信人们还在使用这个线程,谢谢@Teepeemm 更新我的答案:D 快乐基线所有...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 2017-03-04
  • 2020-03-19
相关资源
最近更新 更多