【发布时间】:2011-10-21 12:39:55
【问题描述】:
在尝试跨浏览器规范化我的 css 时,我注意到的一件奇怪的事情是,h 元素和其他主要标签类型的默认行高属性在 Chrome 和 Firefox 等浏览器中是不同的,但在用户代理级别:
- http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/css/html.css
- http://mxr.mozilla.org/mozilla-central/source/layout/style/html.css
此外,像 normalize.css 这样流行的规范化器也不会处理这个问题。
所以我的问题是两个部分:
- 如果没有在用户代理级别设置行高,那么默认值是从哪里来的?
- 我宁愿自己不规范行高,但如果必须这样做,哪里有一些默认值的好例子?
【问题讨论】:
-
@Yarin - 开玩笑 - 我真的不明白你需要什么?默认行高是您作为设计师为您的页面设计决定的。你应该把它设置在你的CSS之上。浏览器默认是您在链接 (html.css) 中发布的内容,这就是它的来源。
-
@easwee- 正如我的问题所述,行高 css 值未在默认浏览器 css 中设置,因此我试图了解跨浏览器差异的来源。恕我直言,如果您之前从未处理过规范化 CSS,那么您就不需要处理这个问题。
-
@Yarin - line-height 由用户代理设置,因为它是根据某个元素中使用的最大字体计算的。但是是的 - 我不能告诉你哪个浏览器脚本计算这个 - 这是一个浏览器的事情,我从不关心规范化 css。我发现过度使用它,客户通常不会为此付费。
-
这就像在问,我们是否需要从世界上消除疾病。只要你有药,给出的答案就是“不”。是否需要在每个浏览器中体验完全相同的网站。是的!但由于变量太多、操作系统、屏幕分辨率、浏览器版本、渲染引擎等等,这是不可能的,所以给出的借口是“不”。
标签: cross-browser user-agent css