CSS 将底边距添加到 <tr> 具有带边框的背景颜色
CSS Adding margin bottom to <tr> that has a background color with borders
我想要的是我得到这个 table ,其中每一行都有带圆角边框的背景颜色。我遇到的问题是我需要在 table 上添加边距底部。所以 table 看起来像这样
<table>
<tr>
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
</table>
然后有很多这样的行,对于每一行我都想要一个带有圆角边框的特定背景,到目前为止我已经做到了。使用
.colored-row td:first-child {
border-top-left-radius: 1px;
}
.colored-row td:last-child {
border-top-right-radius: 1px;
}
.colored-row td:first-child {
border-bottom-left-radius: 1px;
}
.colored-row td:last-child {
border-bottom-right-radius: 1px;
}
.colored-row {
background: #374F60;
}
此后出现问题,因为我也想在每一行之间留出边距,我尝试在其中添加边距 a,因为它没有任何区别,但颜色只是随着边距不断扩大,如果我将颜色放在上面,它也会在未应用颜色的位置之间留出一些空间。
所以我希望整行都有这样的边距。有什么办法吗?
您不能将 margins
添加到 tr
元素。唯一可行的方法是在 tr
上使用 display:block
。但这会导致 tr
的宽度根据其内容而不是 table.
的宽度
一个解决方案是(如果您可以编辑 HTML )在彩色行之间添加一个 separator
行并给它一个高度。
.colored-row td:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.colored-row td:last-child {
border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
}
.colored-row {
background: #374F60;
}
.separator {
height: 10px;
}
table {
border-collapse: collapse;
width:100%;
}
<table>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
<tr class="separator"></tr>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
</table>
编辑:或者,您可以使用 border-spacing
,但它仅在 border-collapse
设置为 separate
时有效。但这也会在第一行添加一个 'space at the top'
.colored-row td:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.colored-row td:last-child {
border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
}
.colored-row {
background: #374F60;
}
table {
border-collapse: separate;
border-spacing: 0 15px;
width:100%;
}
<table>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
</table>
我想要的是我得到这个 table ,其中每一行都有带圆角边框的背景颜色。我遇到的问题是我需要在 table 上添加边距底部。所以 table 看起来像这样
<table>
<tr>
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
</table>
然后有很多这样的行,对于每一行我都想要一个带有圆角边框的特定背景,到目前为止我已经做到了。使用
.colored-row td:first-child {
border-top-left-radius: 1px;
}
.colored-row td:last-child {
border-top-right-radius: 1px;
}
.colored-row td:first-child {
border-bottom-left-radius: 1px;
}
.colored-row td:last-child {
border-bottom-right-radius: 1px;
}
.colored-row {
background: #374F60;
}
此后出现问题,因为我也想在每一行之间留出边距,我尝试在其中添加边距 a,因为它没有任何区别,但颜色只是随着边距不断扩大,如果我将颜色放在上面,它也会在未应用颜色的位置之间留出一些空间。
所以我希望整行都有这样的边距。有什么办法吗?
您不能将 margins
添加到 tr
元素。唯一可行的方法是在 tr
上使用 display:block
。但这会导致 tr
的宽度根据其内容而不是 table.
一个解决方案是(如果您可以编辑 HTML )在彩色行之间添加一个 separator
行并给它一个高度。
.colored-row td:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.colored-row td:last-child {
border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
}
.colored-row {
background: #374F60;
}
.separator {
height: 10px;
}
table {
border-collapse: collapse;
width:100%;
}
<table>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
<tr class="separator"></tr>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
</table>
编辑:或者,您可以使用 border-spacing
,但它仅在 border-collapse
设置为 separate
时有效。但这也会在第一行添加一个 'space at the top'
.colored-row td:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.colored-row td:last-child {
border-bottom-right-radius: 5px;
border-top-right-radius: 5px;
}
.colored-row {
background: #374F60;
}
table {
border-collapse: separate;
border-spacing: 0 15px;
width:100%;
}
<table>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
<tr class="colored-row">
<td>stuff</td>
<td>stuff2</td>
<td>stuff3</td>
</tr>
</table>