Css 当colspan设置在下面的td行上时,单个th的边界扩展到相邻th
具有以下html代码:Css 当colspan设置在下面的td行上时,单个th的边界扩展到相邻th,css,google-chrome,html-table,Css,Google Chrome,Html Table,具有以下html代码: <table> <tr><th>First</th><th class='second'>Second</th><th class='third'>Third</th><th>Fourth</th></tr> <tr><td>Mike</td><td colspan=2 >John</td
<table>
<tr><th>First</th><th class='second'>Second</th><th class='third'>Third</th><th>Fourth</th></tr>
<tr><td>Mike</td><td colspan=2 >John</td><td>Paul</td></tr>
</table>
我希望第二个单元格下方有一张3倍绿色实线的表格。
我在第二个和第三个单元格下面都有绿色的实心边框,而不是Chrome
在firefox中,结果与预期一样。这是浏览器错误,还是我的代码是非法的
您可以在中看到示例
PS:试着设置
th.third {
border-bottom: 2px solid red;
}
然后试着把它提高到3倍。这就更奇怪了
屏幕截图
预期:
铬:
火狐:
嗯,我不知道这是不是一个bug,但当我遇到这个问题时 为了解决这个问题,我想出了一个简单的解决方法:插入一个额外的行/列 要应用边框样式的位置
<table>
<tr>
<th>Ano</th>
<th class='first'>First</th>
<th class='second'>Second</th>
<th class='third'>Third</th>
</tr>
<tr class='hack'>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Mike</td>
<td colspan=2 >John</td>
<td>Paul</td>
</tr>
</table>
我在chrome上测试了这一点,这是另一个例子:
我想这更容易理解。我的解决办法很简单。我不需要设置border collapse:collapse
set。将我的表更改为:
table {
border-collapse: separate;
}
一切都很顺利。我不得不认为这是一个错误。感觉Chrome只是在折叠边框时选择了错误的边框长度。它显示的是上面行的长度,而不是当前单元格的长度
另一种解决方案是在带边框的单元格前添加一个宽度为0的列,如下所示
css:
html:
3匹
1详情
2正常
3正常
我无法重现您的问题。另外,你能把你的问题改写一下,让它更清楚地说明你看到了什么和你期望看到什么吗?我已经添加了截图你只是在看小提琴吗?将你的代码放入一个静态HTML文件并加载到Chrome中,你看到了同样的情况吗?我不。我在Chrome中看到了正确的显示,在Chrome中看到了不正确的显示。@mmcglyn您需要添加表{border collapse:collapse;}
rule@mmcglynn不是真的。这并不能解释firefox和chrome中的不同行为。我仍然感兴趣的是,当colspan和border Collapson正在使用时,只设置第1个的边界是非法的,还是仅仅是chrome bug。
table {
border-collapse: collapse;
}
tr.hack > td {
height:0px;
}
td, th {
border: 1px black solid;
}
tr.hack > td, td {
border-top: none;
}
tr.hack > td, th {
border-bottom: none;
}
th.first {
border-bottom: 3px green solid;
}
th.second {
}
th.third {
}
table {
border-collapse: separate;
}
.hack {
width: 0;
}
<tr>
<td colspan="4">3 Cols</td>
</tr>
<tr>
<td class="hack"></td>
<td class="top_border">1 details</td>
<td>2 normal</td>
<td>3 normal</td>
</tr>