2009-12-11 23 views
2

可能重複:
relative font-size of <sub> or <sup> and their descendants in IEIE忽略HTML SUB元素的字體大小?

我通常很精通CSS但這個問題讓我吃驚......

我有一些簡單的標記,包括一些文字的和子文本:

<p>I am a main text<sub>This is a sub text</sub></p> 

我有se t CSS,因此默認情況下,所有元素的字體大小均爲12px。然而,對於子元素我推翻這樣的:

sub { color:#999; font-size:11px; } 

火狐尊重11像素,IE 8不,這使得它小得多,但它確實尊重顏色過規則。這是設置FIXED字體大小時我期望的最後一件事。我可以保證沒有其他CSS規則與此衝突。

如果我將CSS中的字體大小增加到12px,IE會將其渲染爲11px,但在Firefox中它太大了。一些奇怪的事情發生在IE中的SUB元素上。

我確實有一個解決方案,如果我使用別的方法標記子文本,例如h3,Firefox和IE都會正確顯示字體大小。如果沒有更好的解決方案,我會朝着這個方向努力,但我只是好奇,是否有更好的解決方案?我也喜歡標記目前的樣子。

+0

你*知道,你是不是'sub'真的意味着*下標*? – pavium 2009-12-11 12:28:16

+0

是的。你的觀點是? – Ferdy 2009-12-11 12:29:28

+0

也許IE對象的字體大小几乎與正文文本相同。 (IE做了一些奇怪的事情) – pavium 2009-12-11 12:36:10

回答

0

由於看起來沒有CSS修復,我已經決定使用<small>標記而不是<sub>標記。這工作正常,但它確實使我的標記不太清楚。

0

我總是圍繞IE的非標準合規工作的方式是檢查用戶代理,並根據它是IE還是其他方式返回不同的樣式表。然後你的IE樣式表可以做任何需要的東西,以使IE正確渲染,而不會爲其他人打破。

+0

到目前爲止,我能夠避免爲不同的瀏覽器提供不同的樣式表,並且如果可能的話我想保持這種狀態。 – Ferdy 2009-12-11 12:30:11

+0

在大多數情況下,IE特定的CSS可以通過使用「* html sub」來製作。 「* html」部分僅針對IE,因爲它認爲在html之外有一個父dom元素,可以是'document'或'window'元素。不知道哪個。 – 2009-12-12 19:30:40

+0

'* html sub' hack只適用於IE <= 6。可靠,有效和非腳本解決方案確實是有條件的評論。 [更多這裏](http://www.webdevout.net/css-hacks#in_css-selectors)。 – Adam 2011-07-24 17:20:13