CSS选择器在IE10中不起作用

时间:2013-03-14 05:47:11

标签: css css-selectors internet-explorer-10

我有一个像这样的CSS选择器

table[id^="tblBody_"] tbody tr td input[type="checkbox"]
{
    margin-top:-3px;
}

HTML

<table id="tblBody_tblApplicationWizardPageDetail">
<tbody>
<tr>
  <td>
    <input id="chkDisplayedBit" type="checkbox"/>
  </td>
</tr>
</tbody>
</table>

我必须在表格单元格中存在的复选框中应用此css,其中表格ID以tblBody_开头

这个东西在IE8中正常工作但在IE10中没有工作

4 个答案:

答案 0 :(得分:3)

问题不在选择器中,因为您可以看到,例如在规则中添加outline: solid red。并设置正余量有效。问题似乎是IE处理复选框元素上的负边距。我不知道实际的IE 8是否也有这个问题,但IE 10中的IE 8仿真模式也有它。

简单的解决方法是使用相对定位而不是负边距:

position: relative; top: -3px;

答案 1 :(得分:1)

如果您的html与以下代码段类似,则可以使用:

<table id="tblBody_32">
    <tbody>
        <tr>
            <td>
                <input type="checkbox" />
            </td>
        </tr>
    </tbody>
</table>

答案 2 :(得分:1)

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>Example</title>
    <style type="text/css">
        *{ margin: 0px; padding: 0px; }
        table[id^="tblBody_"]{ border-collapse:collapse; border-spacing:0; margin: 20px auto; width: 200px; }
        table[id^="tblBody_"] tbody tr td{ border:1px solid #ddd; width: 90px;padding: 5px;  }
        table[id^="tblBody_"] tbody tr td input[type="checkbox"] { margin-left: 20px; }
    </style>
</head>
<body>
    <table id="tblBody_abc">        
        <tbody>
            <tr>
                <td>1</td>
                <td><input type="checkbox" name="hobbit" id="hobbit"></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

我用它,它工作正常。

答案 3 :(得分:-1)

E[foo^="bar"] 
  

一个E元素,其“foo”属性值恰好以   字符串“bar”

selector level 3 

并在caniuse.com他们写的IE 10.0支持css3选择器see here 同一个msdn IE 10支持属性选择器

如果一切无效,使用selectivizr是一个JavaScript实用程序,可以在Internet Explorer 6-8中模拟CSS3伪类和属性选择器[]肯定适用于IE10。