我想在整个表格周围添加一个边框半径。但以下代码在最新版本的 Firefox 和 Google Chrome 中均无效。
table {
border-spacing: 0;
width: 600px;
margin: 30px;
border: 1px solid #CCCCCC;
border-radius: 6px 6px 6px 6px;
-moz-border-radius: 6px 6px 6px 6px;
-webkit-border-radius: 6px 6px 6px 6px;
box-shadow: 0 1px 1px #CCCCCC;
}
table th:first-child {
border-radius: 6px 0 0 0;
-moz-border-radius: 6px 0 0 0;
-webkit-border-radius: 6px 0 0 0;
}
table th:last-child {
border-radius: 0 6px 0 0;
-moz-border-radius: 0 6px 0 0;
-webkit-border-radius: 0 6px 0 0;
}
table td:first-child,
.bordered th:first-child {
border-left: medium none;
}
table th {
background-color: #DCE9F9;
background-image: -moz-linear-gradient(center top, #F8F8F8, #ECECEC);
background-image: -webkit-gradient(linear, 0 0, 0 bottom, from(#F8F8F8), to(#ECECEC), color-stop(.4, #F8F8F8));
border-top: medium none;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}
table td,
table th {
border-left: 1px solid #CCCCCC;
border-top: 1px solid #CCCCCC;
padding: 10px;
text-align: left;
}
<table class="bordered">
<thead>
<tr>
<th><label>Labels</label></th>
<th><label>Labels</label></th>
<th><label>Labels</label></th>
<th><label>Labels</label></th>
<th><label>Labels</label></th>
</tr>
</thead>
<tbody>
<tr>
<td><label>Value</label></td>
<td><label>Value</label></td>
<td><label>Value</label></td>
<td><label>Value</label></td>
<td><label>Value</label></td>
</tr>
</tbody>
</table>
原文由 Tapas Bose 发布,翻译遵循 CC BY-SA 4.0 许可协议
它有效,这是所用工具的问题:jsFiddle 规范化的 CSS 通过隐藏浏览器的默认值导致问题……
见 http://jsfiddle.net/XvdX9/5/
编辑:
来自 jsFiddle 的 normalize.css 样式表将指令
border-collapse: collapse
添加到所有表中,它在 CSS2.1 中以完全不同的方式呈现它们:可以在另一个小提琴中看到这两种模型之间的差异:http: //jsfiddle.net/XvdX9/11/ (单元格上有一些透明胶片,左上角的边框半径很大,以便查看会发生什么在桌子上与其单元格)
在关于 HTML 表格的同一个 CSS2.1 页面中,还有关于浏览器应该/可以用分隔边框模型中的空单元格做什么的解释,
border-style: none
和border-style: hidden
之间的区别在折叠边框模型中,如果表格、行和单元格元素在同一边框上定义了 3 种不同的样式,则如何计算宽度以及应显示哪个边框。