2010-12-02 17 views
1

此HTML:爲什麼對齊屬性只能從td傳播到IE上的包含表?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head><title>TD align test</title></head> 
<body> 
<table width="100%"> 
    <tr><td>aligned left</td><td align="right">aligned right</td></tr> 
    <tr><td colspan="2" align="center"> 
    <table width="100%" cellspacing="0" cellpadding="0"> 
     <tr><td>should be aligned left</td></tr> 
    </table> 
    </td></tr> 
</table> 
</body> 
</html> 

對齊 「應當被左對齊」,在IE(6 & 8)和Opera居中,而是向左在Firefox(3.6 & 4測試版)和鉻。前者似乎將傳播從td到包含表的對齊。

任何人都可以解釋這種差異?哪種行爲更符合標準?

(你可以在http://ysth.info/tdalign.html試試吧。)

+0

這只是一個案例研究?因爲當內容寬度達到100%時,您不必調整中心。但這個問題確實很有趣。 – 2010-12-02 22:40:47

+0

@Gaby:是的,這只是一個簡單的例子來說明效果。我想知道這裏的力量是爲了能夠在大量快樂的代碼中找到所有類似的問題,而不僅僅是顯而易見的問題。 – ysth 2010-12-03 00:51:45

回答

1

你可以看看http://www.docsteve.com/DocSteve/TechNotes/IE6_cascade_test.html爲什麼它可能正在發生。

事實是,它是另一個IE 故障與其他瀏覽器不兼容)。只有我可以建議的是要覆蓋它,通過明確指定你想要的對齊方式。

如果你使用類和text-align:center你會注意到所有瀏覽器的行爲與IE做的align屬性一樣,所以不知道是哪一個正確/錯誤的。

1

align屬性是deprecated,所以即使我知道如何去管理它,我不會感到舒服試圖通過談判它作爲新的瀏覽器可能有更多的和更難以一致地顯示它。

對於你的情況,你可能希望只定義類.right.left(覆蓋級聯.right)和粘性他們到行,表或單元格,你認爲合適。

+0

已棄用不應該是一個問題;不贊成意味着僅支持未來html版本的用戶代理可能不再支持它,它並不意味着聲稱支持4.01的用戶代理已經用carte blanche來打破已棄用的東西。也就是說,html5草案確實會刪除align,而且它已被棄用的事實表明,有充分的理由不使用它。 – ysth 2010-12-03 07:06:05

相關問題