kee*_*279 10 css border background-color border-color
我有一个动态创建的大型HTML表.桌子有标准结构,包括.colgroup,thead以及tbody以下款式.
到目前为止,一切都按预期工作,但是当我在一列(见下文)中将"bgGrey"类添加到TD时,为了给这个列中的单元格提供背景颜色(仅在一列上需要),然后是所有边界此列在IE11中消失,除了左边框,并且该:hover::before样式在Chrome中不再起作用(版本43).
没有添加类,"bgGrey"我在两个浏览器中都没有问题.
似乎某种程度上背景颜色与边界重叠导致了这种情况.
我的CSS(相关部分):
#myTable, #myTable tbody, #myTable thead, #myTable tr {
width: 100%;
}
#myTable, #myTable th, #myTable td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative;
}
#myTable {
font-size: 14px;
table-layout: fixed;
}
#myTable th.editable:hover::before, #myTable td.editable:hover::before {
border: 1px solid blue;
content: '';
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
z-index: -1;
}
#myTable .th1 {
padding: 2px;
}
#myTable .th2 {
font-weight: normal;
}
.bgGrey {
background-color: #e6e6e6;
}
Run Code Online (Sandbox Code Playgroud)
我的HTML(示例TR):
<tr>
// ...
<td class="editable"><div contenteditable="true"></div></td>
<td class="bgGrey editable txtCenter"><div contenteditable="true"></div></td>
<td class="editable txtRight"><div contenteditable="true"></div></td>
// ...
</tr>
Run Code Online (Sandbox Code Playgroud)
pus*_*sle 18
我自己刚刚遇到这个问题,但我不喜欢这里提出的解决方案,所以我一直在谷歌上搜索.我找到了这个答案:https://stackoverflow.com/a/16337203/1156476
在这里,对表格单元格的简单添加可修复边框:
table td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative;
background-clip: padding-box; /* Add this line */
}
Run Code Online (Sandbox Code Playgroud)
检查Caniuse的浏览器支持
可以在Standardista找到该物业的解释
Rah*_*l S -2
请border-collapse: collapse;从 中删除#myTable td,这会导致边框消失。避免给予td.
像这样添加:
#myTable, #myTable th, #myTable td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative; //REMOVE THIS
}
Run Code Online (Sandbox Code Playgroud)
另外,您可以尝试从 CSS 中删除“position:relative”吗?