2

これはおそらくCSSの問題ですが、私には理由がわかりません。

写真のように動作するいくつかのselectonemenuをよく見つけました。

ここに画像の説明を入力

ドロップダウン フィールドは「カバー」されています。次に、それをクリックして値を選択すると、正しく表示され始めます。

クパチーノのテーマを使用しています。

生成されたソースを分析すると、次のことがわかります。

<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」幅属性に問題があります。

4

3 に答える 3

0

私は同じ問題を抱えていましたが、解決策は、この場合、selectOneMenu の css を上書きすることで構成され、次の 2 つのセレクターに対応します。

.ui-selectonemenu .ui-selectonemenu-trigger{
    width: auto !important;
    padding-top: 0.4em;
}

.ui-selectonemenu{
    padding-right: 0px !important;
}

修正前の画像を見る

修正後の画像を見る

于 2016-12-15T03:20:44.960 に答える
0

私はちょうど同じ問題を抱えていました。プライムフェイスのバグだったと思います。私の解決策は、その要素のゼロ幅をオーバーライドすることです。このコードを CSS ファイルに追加するだけです。

.ui-selectonemenu-label{
   width: 100%!important;
}
于 2014-04-02T20:56:59.380 に答える