我试图使用CSS border-radius属性制作一个圆角表。我使用的表格样式是这样的:
table {
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px
}
问题来了。我还想设置border-collapse:collapse属性,当设置border-radius时,它不再起作用。是否有一种基于css的方式,我可以得到相同的效果边界崩溃:崩溃而不实际使用它?
似乎很大一部分问题是,将表格设置为圆角并不影响角td元素的角。如果表格都是一种颜色,这就不是问题,因为我可以让顶部和底部td角分别为第一行和最后一行圆角。但是,我使用了不同的背景色来区分标题和条纹,所以内部td元素也会显示它们的圆角。
用另一个圆角元素包围桌子是行不通的,因为桌子的方角“渗透进来”。
将边框宽度指定为0不会折叠表格。
在将cellspacing设置为零后,底部td角仍然是正方形。
这些表是用PHP生成的,所以我可以对每个外部th/tds应用不同的类,并分别设置每个角的样式。我宁愿不这样做,因为它不是很优雅,而且应用于多个表有点痛苦,所以请继续提出建议。
我希望不使用JavaScript。
我想明白了。你只需要使用一些特殊的选择器。
圆角的问题是,td元素并没有变成圆角。你可以这样解决这个问题:
表tr:最后一个孩子td:第一个孩子{
边框:2px纯橙色;
border-bottom-left-radius: 10 px;
}
表tr:最后一个子td:最后一个子{
边框:2px纯绿色;
border-bottom-right-radius: 10 px;
}
<表>
tbody > <
< tr >
< td > 1道明> < /
2 < td > < / td >
< / tr >
< tr >
< td > 3 < / td >
4 < td > < / td >
< / tr >
tbody > < /
表> < /
现在所有东西都四舍五入了,除了边界崩溃的问题:崩溃破坏了所有东西。
一个解决方法是添加border-spacing: 0,并在表中保留默认的border-collapse: separate。
我尝试使用伪元素:before和:after在thead th:first-child和thead th:last-child上
结合使用<div class="radius borderCCC">包装表
table thead th:first-child:before{
content:" ";
position:absolute;
top:-1px;
left:-1px;
width:15px;
height:15px;
border-left:1px solid #ccc;
border-top:1px solid #ccc;
-webkit-border-radius:5px 0px 0px;
}
table thead th:last-child:after{
content:" ";
position:absolute;
top:-1px;
right:-1px;
width:15px;
height:15px;
border-right:1px solid #ccc;
border-top:1px solid #ccc;
-webkit-border-radius:0px 5px 0px 0px;
}
见 jsFiddle
适用于我的chrome(13.0.782.215)让我知道这是否适用于其他浏览器。
我看到了很多奇怪的黑客和变通办法,所以我想建议我的解决方案,创建一个表与边界半径和相同的视觉效果的边界:崩溃;通过简单地锁定嵌套的行和单元格来关闭边框。
你可以更深入地使用其他伪选择器来满足你的需求,比如first-child,等等,但这是最小的解决方案:
table {
width: 100%;
border-spacing: 0;
border-radius: 4px;
border: 1px solid #ccc;
}
th, td {
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
th:last-child, td:last-child {
border-right: none;
}
tr:last-child td {
border-bottom: none;
}
<table>
<thead>
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
</tbody>
</table>