IE中的html表格thead和th背景

Posted

技术标签:

【中文标题】IE中的html表格thead和th背景【英文标题】:html table thead and th background in IE 【发布时间】:2011-05-09 10:28:46 【问题描述】:

我有一个带有<thead><th> 标签的<table>

<thead><th> 标签都有背景图片。 <thead> 的背景图片重复,<th> 的背景图片位于单元格的左侧。

在 Firefox 中它可以正常工作,但在 IE(我的 IE 是版本 7)中,<thead> 的背景图像不显示。如果我删除<th> 的背景图片,则会出现<thead> 的背景图片。

有什么建议吗?

编辑: 这是我的简化代码:

<table>
   <thead>
     <tr>
       <th>AAAA</th>
       <th>BBBB</th>
       <th>CCCC</th>
     </tr>
   </thead>
   <tbody>
     <tr>
       <td>1111</td>
       <td>1111</td>
       <td>1111</td>
    </tr>
   </tbody>
</table>

<style>
    thead 
      background: url(PATH TO MY IMAGE) repeat-x center /*this image is not displayed in IE*/
    
    th 
      background: url(PATH TO MY IMAGE) no-repeat left center
    
</style>

【问题讨论】:

【参考方案1】:

从这个question开始修改答案:

<style>
  table 
    border-collapse: collapse;
    background: url(PATH_TO_THEAD_IMAGE) repeat-x center;
  
  tbody 
    background: #fff; /* This covers up most of the <table> background */
  
  th 
    background: url(PATH_TO_TH_IMAGE) no-repeat left center;
  
</style>

给出您可能想要达到的目标的合理近似值。这似乎在 Firefox 和 IE7 中的工作方式几乎相同,不过我没有检查 Opera/Chrome/Safari/IE8。

您应该将这种肮脏的杂物放入特定于 IE7 的样式表中,并使用特定于 IE7 的条件注释加载它,这样您就不会在 CSS 中乱扔 IE7 杂物。

【讨论】:

【参考方案2】:

这只是 IE 与表格相关的错误之一... 我建议添加 display:block;到头,或者改为样式“头 tr”。

【讨论】:

这些都没有在我的 IE7 中做任何事情,并且设置 display:block 完全破坏了 IE7 之外的显示(它根本没有任何效果)。【参考方案3】:

这不是一个完整的解决方案,但我还不能发布 cmets。

IE 似乎将 thead 规则应用于 th 元素。将 'repeat-x' 更改为 'no-repeat' 并将 th 和 td 的宽度设置为比背景图像宽得多的值,然后删除第 th 个背景图像。您会看到在每个 th 中重复的 thead 图像......因此,当您为 th 启用背景图像时,您实际上是在覆盖 thead 的背景图像。这绝对不是正确的行为,但你去吧。

因此,如果可以的话,最好的选择可能是退出并以其他方式获取该背景图像。也许您可以将它应用到表格上并使用“顶部”来定位它?

【讨论】:

以上是关于IE中的html表格thead和th背景的主要内容,如果未能解决你的问题,请参考以下文章

html 表格:thead vs th

带有固定标题垂直滚动条的表格是IE11中的Flickr

表格元素

<thead></thead>标签怎么用?

用js实现动态添加表格数据

HTML创建表格格式