CSS: TD background color causing borders to disappear
Solution 1
Please remove border-collapse: collapse;
from #myTable td
, which causes the border to disappear. Avoid giving that for td
.
Add like this instead:
#myTable, #myTable th, #myTable td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative; //REMOVE THIS
}
Also please can you try removing the from the CSS?
Solution 2
I just came upon this problem myself, but I didn't like the solution presented here, so I kept googling. I found this answer: https://stackoverflow.com/a/16337203/1156476
Here, a simple addition to the table cell fixes the borders:
table td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative;
background-clip: padding-box; /* Add this line */
}
Check browser support at Caniuse
And an explanation of the property can be found at Standardista
keewee279
Updated on June 05, 2022Comments
-
keewee279 almost 2 years
I have a large HTML table that is created dynamically. The table has a standard structure, incl.
colgroup
,thead
andtbody
and the below styles.So far everything works as intended but when I add the class "bgGrey" to the TDs in one column (see below) in order to give the cells in this column a background color (which is only needed on one column) then all borders of this column disappear in IE11, except for the left border, and the
:hover::before
style doesn't work anymore in Chrome (version 43).
Without adding the class"bgGrey"
I have no issues in both browsers.It seems that somehow the background color overlaps the border causing this.
My CSS (relevant part):
#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; }
My HTML (example 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>