带有CSS的Flex 4子代伪选择器

带有CSS的Flex 4子代伪选择器,css,apache-flex,css-selectors,flex4,Css,Apache Flex,Css Selectors,Flex4,Flex 4提供了后代css选择器和伪选择器,如: s|DropDownList:open { font-size: 11; } s|DropDownList #labelDisplay { font-size: 12; } 但是,如果我将这两种方法结合起来,想做这样的事情,它似乎不起作用: s|DropDownList:open #labelDisplay { font-size: 13; } 使用后代伪选择器是否可以实现这一点 (当然我可以使用样式名。在labe

Flex 4提供了后代css选择器和伪选择器,如:

s|DropDownList:open {
    font-size: 11;
}

s|DropDownList #labelDisplay {
    font-size: 12;
}
但是,如果我将这两种方法结合起来,想做这样的事情,它似乎不起作用:

s|DropDownList:open #labelDisplay {
    font-size: 13;
}
使用后代伪选择器是否可以实现这一点

(当然我可以使用
样式名。在
labelDisplay
上打开
属性,但我认为使用伪选择器是一个更优雅的解决方案)

您尝试过吗

s|DropDownList:open, s|DropDownList #labelDisplay{
fontSize: 13;

}

这看起来可能是一个Flex错误

如果尚未使用
:open
伪选择器,则不会应用子体样式,如您所发现的:

    s|DropDownList #labelDisplay {
        font-size: 12;
    }
    s|DropDownList:open #labelDisplay {
        font-size: 14;
    }
但是,如果使用伪选择器;甚至是空的,没有样式信息;它似乎解决了这个问题:

    s|DropDownList #labelDisplay {
        font-size: 12;
    }
    /* this line fixes it */
    s|DropDownList:open {}
    s|DropDownList:open #labelDisplay {
        font-size: 14;
    }

我可以在sdk的4.0、4.1和4.5中看到相同的行为。不太漂亮,但至少有一个解决办法。

这与OP试图实现的目标不同。逗号表示法:a,b{/*styles/}是:a{/styles/}b{/styles*/}的缩写