在xul中访问treechildren以进行样式设计

时间:2012-07-03 10:54:00

标签: css firefox-addon xul

我在xul中有这段代码:

<treechildren id = "mainTree_treechildren">
    <treeitem container="true" open="true">
        <treerow>
           <treecell label="&tree.actions;" />
        </treerow>
        <treechildren id="tree_actions_treechildren" >
            <treeitem container="true" open="true">
                <treerow>
                     <treecell label="&tree.actions.warnings;" />
                </treerow>
            </treeitem>
        </treechildren>
     </treeitem>
</treechildren>

我有问题造型。我需要为mainTree_treechildren中的treecell提供不同的文本颜色,并为其父ID为tree_actions_treechildren的子树中的treecell提供不同的文本颜色。

目前我有这个css代码

#mainTree #mainTree_treechildren::-moz-tree-cell-text { color: #000000; }
#mainTree #tree_actions_treechildren::-moz-tree-cell-text { color: #FFFFFF; }

但它不起作用。我只为mainTree_treechildren内的每个元素获得黑色,包括tree_actions_treechildren

1 个答案:

答案 0 :(得分:2)

<treechildren>元素实际上并未显示 - 它们仅仅是树窗口小部件的数据源(其他数据源也是可能的,例如RDF或XML文件)。因此,他们的内容无法直接设置样式。如果要以不同方式设置单个树单元的样式,则应使用properties attribute。这样的事情应该有效:

<treechildren id="mainTree_treechildren">
    <treeitem container="true" open="true">
        <treerow>
           <treecell label="&tree.actions;" />
        </treerow>
        <treeitem container="true" open="true">
            <treerow>
                <treecell label="&tree.actions.warnings;" properties="warning" />
            </treerow>
        </treeitem>
     </treeitem>
</treechildren>

以及相应的风格:

#mainTree_treechildren::-moz-tree-cell-text { color: #000000; }
#mainTree_treechildren::-moz-tree-cell-text(warning) { color: #FF0000; }

请注意,不建议使用#foo #bar之类的CSS选择器 - ID始终是唯一的,因此在选择器中指定多个ID只会减慢速度。