1

我想更改我的 selectOneMenu 的背景颜色。当我尝试将样式设置为时,style="background-color:#f6f6f6"根本没有任何变化。

我试图用 a 包装它并将它div的定义添加到 style.css 但到目前为止没有任何变化。

4

4 回答 4

9

style属性是相当无用的<p:selectOneMenu>通过右键单击View SourceInspect Element查看生成的 HTML 输出。它将应用于包装 div,而不是具体项目,更不用说列表了。要设置所选项目的样式,您需要通过属性选择.ui-selectonemenu-label菜单的子项。styleClass要设置列表样式,您需要通过属性选择.ui-selectonemenu-list面板的子项(下拉菜单) 。panelStyleClass

所以,总而言之,这应该做:

<p:selectOneMenu styleClass="menu" panelStyleClass="panel">

.menu .ui-selectonemenu-label { 
    background: pink;
}
.panel .ui-selectonemenu-list { 
    background: pink;
}

确保在PrimeFaces 自己的样式之后初始化/加载 CSS。最好是在一个.css文件中声明它,该文件<h:outputStylesheet><h:body>.

也可以看看:

于 2013-01-08T11:07:22.707 回答
0

如果您使用 p:selectOneMenu,您可以轻松地为项目设置样式。有关样式类名称,请参阅指南。

也许您可以使用 jquery 添加一些样式。

menuWidget.items.eq(1).addClass('customclass')
于 2013-01-07T22:03:35.947 回答
0

您想要的是覆盖. 为此,您必须查找特定元素的样式定义 - 在文件中或使用 firebug。primefaces.cssselectOneMenu

因为selectOneMenu它会是 ie ui-selectonemenu-items ui-selectonemenu-list(取决于你想要什么风格)。

是一篇关于覆盖默认 Primefaces 样式的好文章。

注意:我不会!important像描述的那样亲自使用,因为它以后可能比有用的更有害。

于 2013-01-07T22:46:42.943 回答
0

类似的帖子:这里这里

与 Primefaces 规范相比,您需要以更具体的方式为元素提供 CSS。同样正如 Fallup 所建议的那样,您不应该使用!important,虽然它可以工作,但它有问题,而且看起来也不太好。

于 2013-01-08T04:20:08.180 回答