我想在整个表周围添加一个边框半径。但是下面的代码在最新版本的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>
9条答案
按热度按时间wgeznvg71#
border-collapse: separate !important;
成功了。谢谢.
HTML
CSS
jsFiddle
aydmsdu92#
它的工作原理,这是一个问题,与所使用的工具:normalized CSSby jsFiddle is causing the problem by hiding you the default of browsers.
参见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种不同的样式,应该显示哪个边框。uelo1irk3#
这是我使用 Package 器的解决方案,仅仅删除
border-collapse
可能并不总是有帮助,因为你可能想要有边框。这篇文章帮助:https://css-tricks.com/table-borders-inside/
bgibtngc4#
只需将
overflow:hidden
添加到带有border-radius
的表中。sf6xfgos5#
对这个老问题的一个注解:
我的 reset.css 设置了
border-spacing: 0
,导致边角被切断。我必须将其设置为3px
,以使我的半径正常工作(值将取决于有问题的半径)。oxosxuxt6#
CSS
cs7cruho7#
不需要担心..只需添加溢出:隐藏;然后应用边界半径。边界半径将应用于所有四边。
jyztefdp8#
为了使用border radius,我在表中设置了一个20px的border radius,然后将border radius放在表头的第一个子元素(th)和表头的最后一个子元素上。
但是,如果对表数据(td)执行此操作,则此操作将不起作用,因为它将向每个表行添加一条曲线。如果表中只有2行,这不是问题,但任何额外的行也会将曲线添加到内部行。你只需要这些曲线在table的外面。因此,在最后一行添加一个id。然后可以将曲线应用于它们。
dy1byipe9#
简单地加上这个: