如何禁用导致IE7中的错误的CSS行?

时间:2012-03-02 22:11:46

标签: css internet-explorer-7

我的IE7用户报告表格中的第二列缺少边框。我终于能够找到导致它的原因 - 包含telerik.common.css中的一行,因为网站上的各个页面使用Telerik的MVC扩展。

我希望能够仅针对IE7禁用那一行(在IE6或更高版本的IE版本中没有错误)。以下示例使用文本颜色而不是边框​​。

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test</title>
<style type="text/css">
table.Standard td
{
    color: black;
}
table.Standard tr.First td
{
    color: red;
}

/* Line that makes all cells in the second column red */
.t-grid .t-group-cell+td,.t-grid .t-hierarchy-cell+td{border-left-width: 0}
</style>
</head>

<body>
<table class="Standard" cellspacing="0" cellpadding="6" border="0">
    <tr class="First">
        <td class="First">red</td>
        <td>red</td>
        <td>red</td>
        <td>red</td>
        <td>red</td>
        <td>red</td>
    </tr>
    <tr>
        <td class="First">black</td>
        <td>black</td>
        <td>black</td>
        <td>black</td>
        <td>black</td>
        <td>black</td>
    </tr>
    <tr>
        <td class="First">black</td>
        <td>black</td>
        <td>black</td>
        <td>black</td>
        <td>black</td>
        <td>black</td>
    </tr>
</table>
</body>
</html>

预期产出:

expected output

IE7输出:

IE7 output

Live example

使用在线浏览器预览进行测试

Browserling

browserling http://tgmayfield.com/sandbox/ie7-adjacency/Browserling-thumbnail.png

Adob​​e Browserlab

Browserlab http://tgmayfield.com/sandbox/ie7-adjacency/Browserlab-thumbnail.png

1 个答案:

答案 0 :(得分:2)

我能够使用IE7的真实安装来验证错误。无论出于何种原因,使用IE9的IE7浏览器模式都不会出现该错误。

我能够通过使用这个讨厌的黑客来过滤掉有问题的CSS:head ~ /* */ body

除了IE7之外,所有浏览器都会理解该hack中的身体声明后的任何内容

head ~ /* */ body .t-grid .t-group-cell+td, head ~ /* */ body .t-grid .t-hierarchy-cell+td{border-left-width: 0}