2011-10-21 60 views
9

我在跨瀏覽器對css進行規範化時注意到的一件奇怪事情是,h元素和其他主要標籤類型的默認行高屬性在Chrome和Firefox等瀏覽器中不同,卻沒有設置在用戶代理級別:查找/設置css行高缺省值

此外,流行的正規化像normalize.css不照顧,要麼。

所以我的問題是兩個部分:

  1. 如果行的高度沒有設置在用戶代理級別,其中的默認值是從哪裏來的?
  2. 我寧願不自己規範線條高度,但如果必須的話,哪裏是一些默認值的好例子?
+2

請參閱[這裏]和[這裏](http://dowebsitesneedtolookexactlythesameineverybrowser.com/)。 –

+4

@真相 - 沒有幫助。如果您想說跨瀏覽器一致性並不重要,那麼大多數網頁設計師都不會這麼看。無論哪種方式,都沒有解決這個問題。 – Yarin

+1

@Yarin - 真相有時可能會傷害:) – easwee

回答

21

我同意「事情並不完全一樣」有點像警察,特別是即使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; } 

他們對此的討論非常有趣,雖然沒有透視是明確的贏家: https://github.com/h5bp/html5-boilerplate/issues/724

+1

@ mahalie-感謝您加強並給出真實答案!偉大的聯繫。 +2 – Yarin

+4

鏈接現在應該是https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css –

+0

這已經過時了,因爲它們現在明確地使用了不同的(並且更易於訪問的)方法通過讓瀏覽器使用它的默認值。 –