html - 使用多个 ">"CSS 选择器

标签 html css

给定这个 html :

<table id="my-table">
  <tr>
    <td>
       I want to apply my style to this
    </td>
    <td>
      <table>
        <tr>
          <td>
            But not to this
          </td>
        </tr>
      </table>  
    </td>
  </tr>
</table>

我想将样式应用于表格的第一级子单元格。

我想我可以用这个:

#my-table > tr > td {
    color: #ff0000;
}

... 但它不起作用。是因为你不能使用多个 > 选择器吗?我该怎么做?

最佳答案

发生的事情有两个方面:

  1. 如果您不包含一个 tbody 元素,浏览器将插入一个元素(或者至少,大多数情况下,大多数情况下是这样;我总是使用一个明确的元素,所以我不不知道边缘情况),因此即使您的 HTML 中没有它,如果您使用 >(子组合器),您的选择器中也需要它。这会将您的选择器更改为 #my-table > tbody > tr > td。 (我提倡始终在 HTML 中明确包含 tbody,以避免混淆和边缘情况。)

  2. td 中的表格继承其颜色来自其内部的td。因此,尽管您的选择器以正确的元素为目标,但它们的后代 元素会继承颜色。

您可以通过为 #my-table td 元素提供明确的颜色,然后仅为 #my-table > tbody > tr > td 元素。

示例(注意 HTML 和选择器中的 tbody):

#my-table td {
  color: black;
}
#my-table > tbody > tr > td {
  color: #ff0000;
}
<table id="my-table">
  <tbody>
    <tr>
      <td>
        I want to apply my style to this
      </td>
      <td>
        <table>
          <tr>
            <td>
              But not to this
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </tbody>
</table>

在评论中您说过您无法控制内表。如果您控制 outer 表,您可以通过在要应用规则的单元格上放置一个类,然后让规则仅应用于 td 来解决这个问题s 与该类:

示例(注意 HTML 和选择器中的 tbody):

#my-table > tbody > tr > td.first {
  color: #ff0000;
}
<table id="my-table">
  <tbody>
    <tr>
      <td class="first">
        I want to apply my style to this
      </td>
      <td>
        <table>
          <tr>
            <td>
              But not to this
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </tbody>
</table>

关于html - 使用多个 ">"CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33521614/

相关文章:

html - HTML输入完全忽略溢出属性

html - 适用于基于表单的 Web 应用程序的良好 HTML 模板

javascript - 使用CSS在容器内移动元素

html - 我怎样才能选择除特定元素之外的所有元素?

html - Rails Nested collection_select 出现在 HTML 中但不出现在屏幕上

html - 使用css的html列表背景颜色顶部的图像

javascript - 刷新 div 后 CSS 样式不起作用

javascript - 使用ajax提交表单但得到 "Illegal Invocation"

android - Iconfont 字符空间在 Android 中崩溃 (Fontastic)

html - 如何隐藏 body 后面的边框?