【问题标题】:how to CSS select all th cells, except the last one on IE7/8?如何 CSS 选择所有单元格,除了 IE7/8 上的最后一个单元格?
【发布时间】:2012-03-04 17:04:16
【问题描述】:

我正在尝试让一些 CSS 也适用于 IE7 和 IE8,但我被 :not() 选择器困住了。

我需要选择除最后一个以外的所有表格标题单元格。我目前正在使用这个:

 th:not(:last-child)

在 IE7+8 上失败。

是否有任何仅使用 CSS 的解决方法?

感谢您的一些提示!

【问题讨论】:

    标签: css internet-explorer css-selectors


    【解决方案1】:

    你问的方式:

    除最后一个以外的所有表格标题单元格

    可以参考:

    • 表格的最后一个th,无论在哪里都可以找到,
    • 一行的最后一个元素(大概是thead>tr 的最后一个元素 - 那里可能有多个tr),
    • 每行最后一个th

    这些情况都不能通过 IE7/8 理解的 CSS 来解决(在 CSS 中根本没有解决方案,th:last-childth:last-of-type

    编辑:在一种情况下,可能会有解决方案。如果您确切知道每一行中有多少 th 元素,那么您可以选择第四个 th ~ th ~ th ~ th
    请参阅http://reference.sitepoint.com/css/generalsiblingselector 了解 IE7/8 错误(不允许发表评论)。
    如果一行中只有 th+ 选择器也可以)或者如果有 @colspan@rowspan 属性(一行中的元素数!=列数)。

    【讨论】:

    • 你是对的,我本来可以更具体的。它实际上是具有多行的thead 中的最后一个单元格,唉 thead th:not(:last-child).
    • 啊。没听说过~。凉爽的。让我们试试
    • @frequent 那是最可能的 :) 但是是的,在写作中解释这些事情比在屏幕上用视觉和手指向同事解释这些事情更难。 :) 顺便说一句,请看我的编辑,一种情况只能通过 CSS 解决
    • 是的,我看到了。这实际上是一个方便的解决方案。并适用于我的情况。还有一个:不下来,还有很多要解决的。再次感谢!
    【解决方案2】:

    我只通过为代码生成器中的最后一个元素添加额外的类来解决它。没有适用于 IE8,7 及更早版本的工具。

    【讨论】:

    • 嗯。这就是我所害怕的。
    【解决方案3】:

    你不能用纯 css 做到这一点。您可以在 HTML 中为最后一个 th 上课,也可以为此使用 selectivizr JavaScript。 Selectivizr 支持 IE 旧版本的所有 css3 和 css2 选择器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多