我有一个表,其中的列由一个colgroup设置了不同的背景。然而,在ie6/7中,它完全忽略了colgroup背景,并为单元格获取reset.css背景值(background:transparent)。如何修复此问题而不必转到每个单元格并手动输入背景值?
HTML格式
<table id="services-table" border="0" cellpadding="0" cellspacing="0" width="100%">
<colgroup>
<col class="services-oddcolumn" />
<col class="services-evencolumn" />
</colgroup>
<tbody>
<tr>
<td>Column #1, Row #1</td>
<td>Column #2, Row #1</td>
</tr>
<tr>
<td>Column #1, Row #2</td>
<td>Column #2, Row #2</td>
</tr>
</tbody>
重置(位于主css文件上方)
html,body, table,tr,th,td {background:transparent;} //it's taking this background value for TD and column
CSS
.services-oddcolumn{background-color:#000 !important; width:10%;}
.services-evencolumn{background-color:#fff !important; width:10%;}
编辑-最后没有“干净”的修复,我只需要更改reset.css文件,这样table、tr、th、td标记就从background中排除了:transparent属性
最佳答案
首先,祝贺您甚至知道<colgroup>
标记,更不用说使用它了。它并不是html开发人员库中最有名的元素。
然而,不幸的是,它不太为人所知的原因之一是它没有得到很好的支持,而且听起来好像你碰到了一个你无法解决的bug。
查看此页:http://marc.baffl.co.uk/bugs.php并搜索单词“colgroup”。你会发现你将遇到的各种错误的描述,以及一个表,其中列出了哪些浏览器支持它。不幸的是,ie6和ie7在该表的每一列中都有“no”这个词。
如果你打算支持ie6和ie7,你可能很难让它工作。
[编辑]
值得注意的是,IE中的这种缺乏支持特别具有讽刺意味,因为<colgroup>
最初是IE4天内IE特有的扩展。
如果您想支持旧的ie,我的建议是放弃<colgroup>
并简单地使用<td>
元素上的类来实现相同的效果。