代码之家  ›  专栏  ›  技术社区  ›  Bob

在IE6中使用“>”选择器

  •  0
  • Bob  · 技术社区  · 16 年前

    我编写了一些CSS,使用父级来定位元素>儿童选择器。专门针对表格,这样我就可以将某些样式应用于页眉和页脚,如下所示

    table > thead > tr > th ...
    table > tbody > tr > td ...
    //there are other uses in the css as well
    

    除了IE6之外,这工作得很好。为了支持IE6,我最好的方法是什么?

    4 回复  |  直到 16 年前
        1
  •  3
  •   Ryan Doherty    16 年前

    如果我想选择E>F,我用

    E F {
        set-some-style: value;
    }
    
    E * F {
        unset-some-style: 0;
    }
    

    只是,当你有很多>选择器。

    更多阅读: http://www.sitepoint.com/blogs/2005/06/20/erics-universal-child-selector/

        2
  •  5
  •   davethegr8 Community Driven Business    16 年前

    通常,您只需删除“>它会奏效的。这取决于你的CSS和HTML是如何编写的。我会试试的。

        3
  •  1
  •   Spudley Pat    13 年前

    IE6不支持 > 选择器。

    在某些情况下,您可以用空格选择器替换它,并获得大致相同的结果,但这并不总是有效的;有时候,你只是 需要 这个 > .

    我的第一个建议是放弃对IE6的支持。在过去的几年里,它几乎失去了所有剩余的市场份额,所以真的没有必要支持它。

    如果你必须支持IE6,并且你想使用 > 选择器,那么你唯一的选择就是Javascript黑客。

    有两种技巧可能会对你有所帮助:

    • Dean Edwards' IE7.js -这是试图使用Javascript将尽可能多的CSS和JS功能移植到旧版本的IE中,包括IE6。它做得相当好,已经存在了很长时间。

    • Selectivizr-这是一个JS库,旨在为旧版本的IE提供对现代CSS选择器的全面支持。它还要求您使用另一个库,如jQuery,因为它从该库挂钩到选择器引擎。这意味着,如果你已经在使用一个受支持的库,那么它就是你代码中一个小而高效的补充。

        4
  •  0
  •   Pim Jager    16 年前

    你可以使用JavaScript来定位它们,但这很难成为真正的解决方案,因为它需要JavaScript来完成CSS应该完成的事情。您也可以修改HTML以具有特定的类,但这意味着要修改HTML。我真的不认为有任何“好”的解决方案,如果是我必须处理这件事,或者如果我有权访问HTML或为这些特定孩子创建HTML脚本使用类,我可能会使用JavaScript将其全部破解。