如何让GWT CSSResource解析not()选择器

如何让GWT CSSResource解析not()选择器,gwt,css,cssresource,Gwt,Css,Cssresource,我意识到GWT使用的CSS解析器只处理CSS2,但我的目标是iPhone Safari,所以我希望能够使用一些CSS3的东西。对于属性,我可以很好地使用GWT提供的literal函数,但是CSS3选择器有问题,特别是not()伪类 我有点像这样的CSS: .iMore:not (.__lod ):active { color: #fff } 当GWT将此文件作为资源加载时,我得到: 遇到“(”。应为“{”中的一个 literal函数对属性很有效,但我尝试了以下方法: .iMore:li

我意识到GWT使用的CSS解析器只处理CSS2,但我的目标是iPhone Safari,所以我希望能够使用一些CSS3的东西。对于属性,我可以很好地使用GWT提供的
literal
函数,但是CSS3选择器有问题,特别是
not()
伪类

我有点像这样的CSS:

.iMore:not (.__lod ):active {
    color: #fff
}
当GWT将此文件作为资源加载时,我得到:

遇到“(”。应为“{”中的一个

literal
函数对属性很有效,但我尝试了以下方法:

.iMore:literal("not (.__lod )"):active {
    color: #fff
}
刚刚收到一条不同的错误消息:

遇到“非(.\u lod):”。应为以下之一:

我将
literal
放在整个块的周围,错误消息消失了,但我认为如果没有
@external
调用使用此选项的选择器中引用的所有内容(此文件中还有许多其他内容),则这将无法工作

  • 这样行吗
  • 有没有更优雅的方法

  • 您可以用反斜杠转义选择器中的括号。因此,对于CSS:

    .iMore:not \(.__lod \):active {
        color: #fff
    }
    

    我理解一些“酷”的CSS3,比如转换等等。但是
    :not
    几乎不值得这么做,因为唯一的“优雅”我所看到的只是破解CSS解析器以接受CSS3选择器。问题是我继承了其他人的CSS文件。我有权编辑它,但我不想全部重新创建。css2与上述语句的等价物是什么?我认为没有一个简单的选项?谢谢你的回答,但我很久以前就放弃了,所以我没有代码来测试它。哦,好吧。它是为子孙后代准备的:-)+1这是有效的。值得注意的是,使用足够的反斜杠可以转义更粗糙的not()选择器。例如,
    not([type=“search”])
    变成
    not\(\[type\=”search\]\)
    。另一个注意事项:转义的右括号前的空格很重要。
    .iMore:not\(.\uu lod\)
    当前将导致错误“[error]以下未模糊的类存在于严格的CssResource:[error]\uu lod\”中。”