2011-07-19 3 views
10

Farklı bir biçimde görüntülenebilmesi için <h:selectOneMenu><f:selectItem>'a CSS'yi uygulamak istiyorum.CSS'yi <f: selectItem> uygulamasında <h: selectOneMenu>

örn. Aşağıdaki listede her kahve seçeneği farklı bir renkte görüntülenmesini istiyorum.

<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>` 

Herkes bana yardım edebilir mi?

cevap

-4

JSF ile familar değilim, ancak tarayıcıya gönderilenin <f:selectItem> olduğunu kabul etmiyorum.

Bu JSF etiketi için tarayıcıya gönderilen HTML öğesinin ne olduğunu bulmanız ve buna CSS uygulamanızı uygulamanız gerekir.

9

<f:selectItem>, bir HTML <option> öğesi oluşturur. Çok sınırlı CSS stil desteğine sahiptir. color özelliği aralarında değil. Dahası, sadece başka web tarayıcılarında değil, MSIE'de çalışır. Ancak, her <option> öğesinin kendi style özniteliğini JSF'ye vermenin bir yolu yoktur, bu nedenle alabileceğiniz en yakın şey, tüm seçenekler için bir CSS kuralı uygulamak ve yalnızca MSIE'de çalıştığını kabul etmektir.

.mymenu option { 
    color: red; 
} 

En iyi bahis ile

<h:selectOneMenu styleClass="mymenu"> 

bir açılır gibi görünmek taklit CSS/JavaScript iyi atış ile <ul><li> tarafından açılan değiştirmektir. Bazı JSF bileşen kitaplıklarında PrimeFaces '<p:selectOneMenu> gibi bir bileşen bulunur. Özel içeriği 3.0 showcase örneğinde örneğini kontrol edin.

+0

'h: selectOneRadio' nedir? Her biri farklı bir renk etiketine sahip 3 seçenek bulunan bir gereksinim var. Bunu jsf'de radyo ile yapmanın bir yolunu bul. Her hücrede bir '' ve eşleşen bir '

+1

@Lucas: http://stackoverflow.com/questions/6033955/jsf-more-customizable-selectmanycheckbox-and-selectoneradio – BalusC

+0

Teşekkürler, bu işe yarayacak, ancak şu anda tomahawk kullanmıyoruz. Olumsuz sonuçlara yol açmadan çevremize eklenip eklenemeyeceğini görmem gerekecek (çok fazla çerçevenin kötü bir şey olduğu anlaşılıyor). Her neyse, bunu jsf: ' ' css: ' .choices girişi [value = "yes"] + label {color: yeşil} .choices girişi [değer = "hayır"] + etiket {color: red} – Lucas