2010-07-20 151 views

回答

3

不,border-collapse不允許單獨定義水平和垂直。你可以用額外的標記(其中,在桌子上,最終可能會成爲額外的標記的很多)實現它,所以我不建議它,但我會給它的代碼:

HTML:

<table> 
    <tr> 
    <th><div>Header 1</div></th> 
    <th><div>Header 2</div></th> 
    </tr> 
    <tr> 
    <td><div>Content 1</div></td> 
    <td><div>Content 2</div></td> 
    </tr> 
    <tr> 
    <td><div>Content 3</div></td> 
    <td><div>Content 4</div></td> 
    </tr> 
</table> 

和CSS:

table {border-collapse: collapse;} 
th, td { border: 0; padding: 0;} 
th div, td div {margin: 5px 0 0; border: 1px solid #ff0000; padding: 5px;} 

當然,你可能要使用一個類上div或子選擇,只針對div如果某種方式您可能在table數據中有其他div。 margin控制您的水平間距,當然,您的paddingborder寬度可以是任何你想要的。

+0

這正是我想避免,但感謝的答案:) – pistacchio 2010-07-20 13:43:18

+0

隨着次DIV,TD DIV {保證金:-1px爲5px 0; border:1px solid#ff0000; padding:5px;}你得到你想要的東西:http://jsfiddle.net/7h5rV/ – 2010-07-20 13:49:36

+0

這會讓他與他想要的相反,它會分開垂直線並摺疊水平線。然而,你的'-1px'邊距是一個好點,因爲我的解決方案會在垂直方向上放置一個雙邊框,所以他需要以某種方式處理這個問題,無論是通過負邊距還是隻將邊框放在左邊,除了最後一個單元一排。 – ScottS 2010-07-20 14:21:21

0

這是你在找什麼?

table { 
    border: 1px solid black; 
} 

table td { 
    border: 1px solid red; 
    margin: 3px; 
} 

它不使用border-collapse屬性,但在其自己單獨的邊境各<td>創建一個外部表邊框。

5

我能得到的最接近的是:

table { 
    border-collapse: separate; 
    border-spacing: 4px 0; 
} 
table td, table th { 
    border: 1px solid black; 
} 

不幸的是,這將創建行之間的雙粗線。在border-spacing屬性中不允許使用負值,否則-1px可能會起作用。


你可以做其他線路2px的寬,如果這是可以接受的,那麼至少你不會有不同的邊框厚度:

table { 
    border-collapse: separate; 
    border-spacing: 4px 0; 
} 
table td, table th { 
    border-width: 1px 2px; 
    border-style: solid; 
    border-color: black; 
} 
table tr:first-child th, 
table tr:first-child td { 
    border-top-width: 2px; 
} 
table tr:last-child th, 
table tr:last-child td { 
    border-bottom-width: 2px; 
} 
+0

這適用於我 – 2013-03-12 23:13:54

+0

另一種選擇是將頂行的邊界底部設置爲0 – Tom 2013-12-09 18:07:25

6

也許

table { 
    border-spacing: 1px 0; 
} 
+0

偉大的解決方案。謝謝。 – 2012-05-24 12:45:51

+2

這是迄今爲止最好的答案。 – dlsso 2016-07-05 21:55:57

3

這可能是無需使用第td單元中的額外div元素。該解決方案適用於Chrome,Firefox和IE8 +。

CSS

table 
{ 
    border-collapse: separate; 
    border-spacing: 10px 0px; 
} 
td, th 
{ 
    padding: 10px; 
    border: 1px solid #000; 
    border-top: none; 
} 
table tr:first-child th 
{ 
    border-top: 1px solid #000; 
} 

變化表TR:第一胎次表TR:第一胎TD如果表的第一行不包含表頭單元格(TH)。

見我的jsfiddle這裏:Table with column spacing but collapsed row border

+1

完美的作品! – Uri 2015-08-14 16:04:27