IE 和 Firefox 之间具有背景图像渲染差异的 HTML <thead>

标签 html css background-image

我有一个用 HTML 编码的表格,如下所示;

<table border="1" class="tableBasic">
<thead>
    <tr>
        <th rowspan="2">Head Row 1</th>
        <th rowspan="2">Head Row 1</th>
        <th rowspan="2">Head Row 1</th>
        <th colspan="4">Head Row 1</th>
    </tr>
    <tr>
        <th>Head Row 2</th>
        <th>Head Row 2</th>
        <th>Head Row 2</th>
        <th>Head Row 2</th>
    </tr>

</thead>
</table>

所以这是一个跨越 2 行的表头。

.tableBasic thead{
    background: url("/images/tbl_header.png") repeat-x scroll 0 0 transparent;
}

IE 和 Firefox 的背景图片渲染有区别吗?

虽然 IE 将背景图像显示为跨越 2 行(即等于 2 行高),但 Firefox 仅在第一行显示它(并且不显示第二行的任何背景)

背景图片的高度足以跨越 2 行高度。 不幸的是,我无法修改 HTML 代码,只能通过 CSS 对其进行控制。

如何在 CSS 中解决这个问题?

浏览器 enter image description here

火狐 enter image description here

最佳答案

我认为 Firefox 正在做您所说的,您在 thead 上声明了背景并仅重复 X,这就是 Firefox 正在做的。 IE 有点作弊,这使它看起来更好,但它没有遵循您的 css 声明。由于您还有另一个小问题需要解决,即某些单元格比其他单元格高,而一张图像无法解决这一事实,我认为您应该考虑将您的 css 对准 th 元素。

也许是这样的:http://jsfiddle.net/JQK2A/1/

您可以根据 colspan 或 rowspan 属性定义合适的背景图片。

CSS

.tableBasic thead th {
    background: green url(background.jpg);
}

.tableBasic thead th[rowspan] {
    background: red url(background2.jpg); 
}

.tableBasic thead th[colspan] {
    background: blue url(background3.jpg); 
}

评论后更新:

如果您可以使用 CSS 3,您可以试试这个(只使用 1 个背景图片):

.tableBasic thead th {
    background: url(background.jpg);
    background-size: 100% 100%; /* CSS 3 */
}

关于IE 和 Firefox 之间具有背景图像渲染差异的 HTML <thead>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7022071/

相关文章:

html - 悬停时没有 div 的导航栏下拉菜单

html - <mark> 将 Html 呈现为 pdf 时,Html 标记不起作用

java - 如何更改所有屏幕上的背景图像并保留更改

css - 使用 CSS 填充时如何在输入文本框中隐藏背景图像

javascript - 如何在 win-list-view 中动态添加项目源

javascript - 提交表单的进度条 ($_SERVER ["PHP_SELF"])

html - 为什么 Chrome 不在列表中显示#?

javascript - 引号转义以正确地将参数从 HTML 输入值传递到 PHP echo 中的 javascript 函数

javascript - 在鼠标移动到表格单元格上时滚动表格包装器 div。(Chrome)

css - bootstrap 3 CSS 背景图像未显示在打印预览中