2009-02-27 96 views
2

鑑於以下HTML頁面,水平線會出現在表格頂部,其中第一行將具有第二個和第三個單元格(如果已定義)。在Firefox和border-collapse中沒有單元格的表格中隱藏邊框:collapse; collapse;

<html> 
<head> 
<Title>Test Page</Title> 

<style type="text/css"> 
table { 
    margin:10px 0 10px 0; 
    padding:0; 
    margin: 0 0 0 0; 
    border-collapse: collapse; 
    border: 0; 
} 

td { 
    border:1px solid #CCCCCC; 
    padding:5px; 
} 
</style> 

</head> 
<body> 
    <table> 
     <tr> 
      <td>Test Title</td> 
     </tr> 
     <tr> 
      <td>Sub Title</td> 
      <td>Sub Title</td> 
      <td>Sub Title</td> 
     </tr> 
    <table> 
</body> 
</html> 

我想通過修改CSS來刪除該行(下面突出顯示)。此行出現在Firefox中,但不是IE6。

,我不能修改HTML以任何方式,因爲這

Example Image

注是由第三方系統生成(上面的例子僅僅是爲了突出這個問題)。這個第三方系統只允許我修改CSS。

回答

3

這將得到它的渲染,而不在Firefox上邊框:

table, td { 
    border: 1px #CCC; 
} 

table { 
    margin: 0; 
    border-spacing: 0; 
    border-style: none none solid solid; 
} 

* html table { 
    border-collapse: collapse; 
} 

td { 
    border-style: solid solid none none; 
    padding: 5px; 
} 

它也適用於我的IE7。如果它在IE6中斷,請使用條件註釋或CSS黑客將其恢復到它僅在您自己的IE6代碼中的狀態。

-1

Firefox Colspan Border-COllapse Bug

最明顯的解決方法是隻需設置 的DOM前合併單元格有 裝完,或者至少, 表之前完成 渲染。但是,這要求我們使用內聯標記來凌亂我們另外清理的HTML ,或者在HTML生成階段先知道 列的數量。

我希望找到一個更優雅的 「非侵入式的JavaScript」在 解決方案的未來,但在當前時間我 不知道的人。只需將 表格的「顯示」樣式設置爲「無」,然後 然後將其重新設置回「阻止」, 就沒有辦法。

0

編輯:您的第三方工具生成錯誤/無效的標記,將自己託付給你一個非常大的瀏覽器兼容性/ CSS頭痛,如果是在所有可行的,取代它,或生成HTML

從技術上講的第一行應該被標記爲

<tr> 
     <td colspan="3">Test Title</td> 
    </tr> 

所以我不認爲你可以acheive,使用表。

一個CSS尖

margin: 10px 0; 

在左側的頂部和底部和0和正確的放10px的

0

empty-cells屬性可能會幫助你在這種情況下。

table { 
    empty-cells:hide; 
} 

然後,也許不是。你也可以顯式關閉表格行的邊框嗎?

0

正在使用JavaScript的一個選項?你可以在單元格中注入一個非破壞空間,它應該畫出邊界。

+0

我認爲這個問題是問如何隱藏的邊界,而不是畫出來。 – 2009-02-27 18:49:39

+0

不用擔心,這是第三方產品,我僅限於修改CSS的訪問權限。 – Iain 2009-03-02 09:23:30