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

使用带有IE6的“>”选择器

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

    我已经编写了一些CSS,它使用父>子选择器来针对元素。专门针对表格,这样我可以对页眉和页脚应用某些样式

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

    这很有效,除了IE6。我将此CSS分解为支持IE6的最佳方法是什么?

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

    通常,您只需删除“>”即可。这与你的CSS和HTML是如何编写的有关。我会试试的。

        2
  •  5
  •   davethegr8 Community Driven Business    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/

        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将它们全部破解。