IE7表中的CSS子选择器

Joh*_*ohn 4 css css-selectors internet-explorer-7

我试图在IE7中使用> CSS子选择器,它似乎不起作用.我有嵌套表.我的外表有一个类名"mytable",我希望外表的td显示边框.我不希望内表td有边框.

我想我应该能够拥有如下所示的CSS:

.mytable { border-style: solid }
.mytable>tr>td { border-style: solid }
Run Code Online (Sandbox Code Playgroud)

但第二行似乎没有效果.如果我更改第二行以使其不那么具体,它适用于所有td - 我看到太多边框.

td { border-style: solid }
Run Code Online (Sandbox Code Playgroud)

所以我认为这只是选择器的一个问题.像这样的页面表明IE7应该能够做我想要的.我做傻事吗?

这是整个HTML文件:

<html>
  <head>
    <style type="text/css">
      .mytable { border-style: solid; border-collapse: collapse;}
      td { border-style: solid; }
    </style>
  </head>

  <body>
    <table class="mytable">
      <tr>
        <td>Outer top-left</td>
        <td>Outer top-right</td>
      </tr>
      <tr>
        <td>Outer bottom-left</td>
        <td>
          <table>
            <tr>
              <td>Inner top-left</td>
              <td>Inner top-right</td>
            </tr>
            <tr>
              <td>Inner bottom-left</td>
              <td>Inner bottom-right</td>
            </tr>
          <table>
        </td>
      </tr>
    <table>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

bbu*_*ser 5

除了使用符合标准的模式,您还必须编写

.mytable>tbody>tr>td 
Run Code Online (Sandbox Code Playgroud)

因为 - 即使它没有明确写出 - tbody在DOM table和之间的DOM中有一个元素tr.


Ste*_* P. 3

根据多个消息来源,子选择器 (>) 应该在 IE7 中工作。您可以通过使用后代选择器(空格)并恢复所有更深层嵌套元素的样式来绕过该问题:

.mytable { border-style: solid; border-collapse: collapse;}
.mytable tr td { border-style: solid; }
.mytable tr td td{ border-style: none; }
Run Code Online (Sandbox Code Playgroud)