2012-09-12 49 views
1

我是新來的HTML,我只是想做一個基本的表,我可以在CSS中指定列的寬度。td:第一個孩子似乎沒有在IE中工作

我正在創建一組HTML帳戶(35頁文檔),所以表格是我需要生成的基礎,並且會在整個html中使用大約5個標準表。

我有一個快速去,下面的代碼似乎是完全符合我的需要,但td:第一個孩子在IE中不起作用。

我已搜索並支持。誰能告訴我我做錯了什麼?此外,如果有更好的方式,讓我知道。

<html> 
<head> 
    <title>Company Accounts</title> 
    <style type="text/css"> 
     table { width: 264mm; border: 1px solid; table-layout:fixed} 
     td {border: 1px solid; padding: 5px} 

     .T1C1 td:first-child {width: 10mm; text-align:right} 
     .T1C2 td:first-child + td {width: 50mm} 
     .T1C3 td:first-child + td + td {width: 10mm; text-align:right} 
     .T1C4 td:first-child + td + td + td {width: 50mm; text-align:right} 
    </style> 
</head> 
<body> 
    <table class="T1C1 T1C2 T1C3 T1C4"> 
     <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> 
     <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> 
     <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> 
     <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> 
     <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> 
    </table> 
</body> 
</html> 
+0

哪個版本的IE? – Raptor

+0

IE9,Chrome和Firefox都正常工作 – user1607914

+1

已修復,需要添加文檔類型 – user1607914

回答

0

下面是該CSS僞類REFFERENCE:https://developer.mozilla.org/en-US/docs/CSS/:first-child

你可以找到那裏的瀏覽器的兼容性表。

有IE瀏覽一些警告在頁面的底部:元素時動態添加

Internet Explorer 7中不更新的樣式。在Internet Explorer 8中,如果通過單擊鏈接動態插入元素,則在鏈接失去焦點之前,不會應用第一個子樣式。

2

:first-child僞類是IE在Quirks Mode中不支持的許多CSS功能之一。正如評論中提到的那樣,這就是爲什麼添加文檔類型的原因。但它不只是任何文檔類型。它必須是觸發IE中的「標準模式」(如<!doctype html>)的文件,放置在HTML文檔的最開始。

這種特殊的怪癖是微軟文檔中明確說明: 「注意僅在標準兼容模式啓用僞類(嚴格的!DOCTYPE)。」 http://msdn.microsoft.com/en-us/library/ie/cc848865%28v=vs.85%29.aspx 文檔中的單詞「嚴」是誤導性的,然而,除了鏈接頁面上列出的文檔類型 http://msdn.microsoft.com/en-us/library/ie/ms535242%28v=vs.85%29.aspx HTML5文檔類型<!doctype html>也可以,