有没有另一种方法来实现border-collapse:collapse
在CSS
(为了有一个折叠,圆角表)?
因为事实证明,简单地让表的边界折叠并不能解决根本问题,所以我更新了标题以更好地反映讨论。
我正在试着做一张圆角的桌子使用CSS3
border-radius
属性。我使用的表格样式是这样的:
table {
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px
}
问题来了。我还想设置border-collapse:collapse
属性,当它被设置时,border-radius
不再工作。是否有一种基于css的方式,我可以得到与border-collapse:collapse
相同的效果,而不实际使用它?
编辑:
我已经做了一个简单的页面来演示问题在这里(仅限Firefox/Safari)。
似乎很大一部分问题是,将表格设置为圆角并不影响corner td
元素的圆角。如果表格都是一种颜色,这就不是问题,因为我可以将顶部和底部td
角分别为第一行和最后一行圆角。但是,我为表格使用了不同的背景色来区分标题和条纹,因此内部的td
元素也会显示它们的圆角。
建议解决方案概述:
用另一个圆角元素包围桌子是行不通的,因为桌子的方角“渗透进来”。
将边框宽度指定为0不会折叠表格。
底部td
角仍然正方形后设置cellspacing为零。
使用JavaScript可以避免这个问题。
可能的解决方式:
这些表是用PHP生成的,所以我可以对每个外部th/tds应用不同的类,并分别设置每个角的样式。我宁愿不这样做,因为它不是很优雅,而且应用于多个表有点痛苦,所以请继续提出建议。
可能的解决方案2是使用JavaScript(特别是jQuery)来设置角的样式。这个解决方案也可以,但仍然不是我想要的(我知道我很挑剔)。我有两点保留意见:
我知道今天尝试用CSS3来做这件事似乎没有必要,但我有我的理由。我还想指出这个问题是w3c规范的结果,而不是糟糕的CSS3支持,所以当CSS3得到更广泛的支持时,任何解决方案仍然是相关的和有用的。