我想将CSS特定应用于< f:selectItem>在< h:selectOneMenu>以不同的风格显示.
例如我希望以下列表中的每一个咖啡选项以不同的颜色显示.
<h:selectOneMenu value="#{user.favCoffee1}"> <f:selectItem itemValue="Cream Latte" itemLabel="Coffee3 - Cream Latte" /> <f:selectItem itemValue="Extreme Mocha" itemLabel="Coffee3 - Extreme Mocha" /> <f:selectItem itemValue="Buena Vista" itemLabel="Coffee3 - Buena Vista" /> </h:selectOneMenu>`
有人可以帮我从这里出去吗?
解决方法
< f:selectItem>呈现HTML< option>元件.它的CSS样式支持非常有限.颜色属性不在其中.更重要的是,它只适用于MSIE,而不在其他web浏览器中.然而,没有办法给出每个< option>元素自己的风格属性由JSF,所以最接近你可以得到的是应用一个CSS规则的所有选项,并接受只在MSIE工作.
<h:selectOneMenu styleClass="mymenu">
同
.mymenu option { color: red; }
最好的办法是用< ul>< li>替换下拉列表.有一个好的镜头的CSS / JavaScript模仿它看起来像一个下拉菜单.一些JSF组件库具有这样的组件,例如PrimeFaces的< p:selectOneMenu>.检查其3.0 showcase中的自定义内容示例.