我有这对头部重复的背景图像的列表:
thead tr
{
border-collapse:collapse;
background: #D3D2D2 url(images/background-table-header.gif) repeat-x top;
}
这一点也适用于跨Firefox和Internet Explorer的,但如果我们希望某些列标题,以显示排序方向我们装饰与类排序和方向的位。 并使用CSS来添加一个方向图标。
thead th.Sorted
{
background-repeat: no-repeat;
background-position: center left;
padding-left: 0.6em;
}
thead th.Sorted.Ascending
{
background-image: url(images/background-table-sorted-column-ascending.gif);
}
thead th.Sorted.Descending
{
background-image: url(images/background-table-sorted-column-descending.gif);
}
的问题是,在Internet Explorer 6和7从TR背景颜色是继承(发现使用Internet Explorer开发人员工具栏)的位。 这意味着次油漆#D3D2D2
在TR背景颜色。 火狐,Chrome和IE8没有这个问题,所以这是一个IE6 / 7的错误,我怀疑。 我考虑使用background-color:transparant
上thead th.Sorted
但IE6 / 7只是描绘主体背景(看起来它切割一个孔在所述主体和所述th之间的其它层)。
这是应该的样子:
这是怎么看起来像在IE6和IE7:
下面是我snipppet对这个问题产生的HTML。
<table cellspacing='0'>
<thead>
<tr>
<th>First column</th>
<th>Second column</th>
<th class="Sorted Ascending">Third column</th>
<th>Fourth column</th>
</tr>
</thead>
<tbody>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</tbody>
</table>
我怎么能解决这个问题?
看来IE浏览器有一个bug -它呈现tr
的背景图像单元格的背景图像,所以细胞的图像将覆盖该行的形象。 同样存在错误的thead
元素,但它似乎与表格元素很好地工作。
所以,你可以将你的背景图像表,而不是标题行:
table
{
background: #D3D2D2 url(images/background-table-header.gif) repeat-x top;
}
由于背景图像是在桌子上,可能超出标题行,所以你可能还需要设置的背景颜色tbody
或其tr
S:
tbody
{
background-color: #fff;
}
这是奇怪...因为这只是正常(虽然我不使用的图像,它应该是相同的,?
<html>
<head>
<style type="text/css">
thead tr{
background-color:#000;
color: #fff;
}
th.sorted.Ascending{
background-color:#fff;
color: #000;
}
th.sorted.Descending{
background-color:#AAA;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>First column</th>
<th>Second column</th>
<th class="Sorted Ascending">Third column</th>
<th>Fourth column</th>
</tr>
</thead>
<tbody>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</tbody>
</table>
</body>
</html>
// //编辑您可能要做到这一点,而不是:
background: #FFFFFF url(http://www.tizag.com/pics/cssT/smallPic.jpg) no-repeat scroll 0 0;
它看起来像在IE浏览器中的错误。 我试了一下,而不对单元格背景图片:
thead tr
{
border-collapse:collapse;
background-image:url(http://www.freefoto.com/images/1223/09/1223_09_1---Big-Blue-Sky--Montana--USA_web.jpg);
background-color:gray;
}
thead th.Sorted
{
background-repeat: no-repeat;
background-position: center left; /** this line changes the position! */
padding-left: 0.6em;
}
和底色的图像被重新定位在该小区! 我想IE渲染行的背景一个单元在同一时间。
你可能要在该小区添加其他元素。
好了,另一个想法:
这似乎是工作确定,如果你把背景图像上table
元素。 thead
也是越野车。 你可以尝试,包括他们两个(表和TR),通过添加规则:
table
{
background: #D3D2D2 url(images/background-table-header.gif) repeat-x top;
}
文章来源: How to avoid a th element from inheriting properties from a tr element in IE6/7