I have been fighting this for a while, can’t figure out why do I see one pixel of background show up in IE7 (other browsers work fine).
Here is a simple example, try it in IE7:
link to jsfiddle: http://jsfiddle.net/PstEk/
<html>
<head>
<style>
.test {
border-width: 0px;
border-spacing: 0px;
border-style: outset;
border-color: red;
border-collapse: collapse;
background-color: blue;
}
.test th{
border-width: 0px;
padding: 0px;
border-style: none;
border-color: red;
background-color: #fff5ee;
}
.test td {
border-width: 0px;
padding: 0px;
border-style: none;
border-color: red;
background-color: #e1edf3;
}
</style>
<body>
<table class="test">
<tr>
<th>Test test</th>
<th>Test test</th>
<th>Test test</th>
<th>Test test</th>
<tr>
<tr>
<td>Test test</td>
<td>Test test</td>
<td>Test test</td>
<td >Test test </td>
<tr>
<tr>
<td>Test test</td>
<td>Test test</td>
<td>Test test</td>
<td>Test test</td>
<tr>
</table>
</body>
</html>
IE7 gets confused by the empty
<tr>elements in your table. You meant</tr>instead of<tr>, but the way you’re witten it now causes<tr>elements with no content to be inserted in the table. IE7 apparently gives empty<tr>elements a height of 1 pixel.