每隔一行的CSS边框间距

Dan*_*y C 4 html css html-table css-selectors css3

我的目标是Chrome和其他符合CSS3标准的浏览器,并且希望每隔一行都有边框分隔.我目前为每一行工作的CSS看起来像这样 -

table{
  border-collapse:separate;
  border-spacing: 0px 3px;
}
td{
    border: 1px solid black;
    padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是:

CSS

table{
  border-collapse:separate;
}
table tr:nth-of-type(odd){
  border-spacing: 0px 3px;      
}
td{
    border: 1px solid black;
    padding: 5px;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<table>
    <tr>
        <td>a-one</td><td>a-two</td><td>a-three</td>
    </tr>
    <tr>
        <td>a-four</td><td>a-five</td><td>a-six</td>
    </tr>
    <tr>
        <td>b-one</td><td>b-two</td><td>b-three</td>
    </tr>
    <tr>
        <td>b-four</td><td>b-five</td><td>b-six</td>
    </tr>
    <tr>
        <td>c-one</td><td>c-two</td><td>c-three</td>
    </tr>
    <tr>
        <td>c-four</td><td>c-five</td><td>c-six</td>
    </tr>       
</table>
Run Code Online (Sandbox Code Playgroud)

数据有两个行集,需要连接,而不同的集合需要分开.我想以表格形式保留它以利用浏览器自动列宽度.看起来边界间距只能在表级别上实现.我已经在使用边框进行样式设计,因此透明边框不是一个可行的选择.我有机会 - 或者我被困了吗?JS-fiddle在这里与上面相同:http://jsfiddle.net/sSba4/

met*_*ion 7

我认为如果数据需要在不同的容器中进行可视化分块,那么最大的语义解决方案可能涉及使用多个表.

但是,如果您想出于某种原因将所有内容保存在单个表中,则需要引入非语义标记来创建这些可视分色,这border-spacing是表的属性,而不是行或单元格的属性.

<table>
    <tr><th></th></tr>
    <tr>
        <td>Apples</td>
        <td>$3.50</td>
    </tr>
    <tr>
        <td>Oranges</td>
        <td>$2.46</td>
    </tr>
    <tr><th></th></tr>
    <tr>
        <td>Pears</td>
        <td>$2.10</td>
    </tr>
    <tr>
        <td>Apples</td>
        <td>$3.50</td>
    <tr><th></th></tr>
    <tr>
        <td>Oranges</td>
        <td>$2.46</td>
    <tr>

        <td>Pears</td>
        <td>$2.10</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

CSS

table {
  border-collapse:collapse;
}

table tr td {
  border: solid #ccc 1px;
  padding: 5px 7px;
}

table tr th {
  border: none;
  padding-top: 5px;
}
Run Code Online (Sandbox Code Playgroud)

在这里看到它http://jsfiddle.net/wYCNg/