这可能是一个 CSS 问题,但我自己无法理解原因。
我经常发现一些 selectonemenus 的行为与图片中的一样:
下拉字段被“覆盖”。然后我单击它,选择一个值,然后...它开始正确显示。
我正在使用库比蒂诺主题。
如果我分析生成的源代码,我会发现:
<div class="ui-helper-hidden-accessible">
<input id="carrello:formCarrello:j_idt165_focus" name="carrello:formCarrello:j_idt165_focus" type="text">
</div>
<label id="carrello:formCarrello:j_idt165_label" class="ui-selectonemenu-label ui-inputfield ui-corner-all" style="width: 0px;">
Seleziona...
</label>
标签有“宽度:0px;”。如果我删除它,菜单会正确显示。
很好,但是...我没有添加该属性。为什么 Primefaces 会添加它?
编辑
第一个菜单的来源:
<p:selectOneMenu value="#{posController.rigaVendita.codiceIva}" effect="fade" converter="codiceIvaConverter">
<f:selectItem itemLabel="Seleziona..." itemValue="" />
<f:selectItems value="#{posController.codiciIva}" var="ci" itemLabel="#{ci.codice}" itemValue="#{ci}" />
</p:selectOneMenu>
所有浏览器中的相同问题。这不是 css 兼容性问题,错误是“0px”宽度属性!