Ho un progetto JSF2/Richfaces 4 in cui voglio usare uno degli skin predefiniti, ma voglio anche impostare lo stile di alcune cose usando il mio foglio di stile personalizzato. Sembra piuttosto semplice, ma quello che sto scoprendo è che, almeno in alcuni casi, il mio stile non viene usato. Per essere espliciti, qui sono i miei rilevanti web.xml context-params:Richfaces Skin Overriding Styleclass
<context-param>
<param-name>org.richfaces.skin</param-name>
<param-value>blueSky</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.control_skinning</param-name>
<param-value>enable</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.control_skinning_classes</param-name>
<param-value>enable</param-value>
</context-param>
mio file CSS di inclusione:
<h:outputStylesheet name="jsp-css.css" library="css" />
Una tale definizione stile attuale:
.obsOptBtnSel{
background-color: transparent;
background-image: url('/images/circleY.gif');
background-repeat: no-repeat;
background-position: center;
border: none;
text-align: center;
width: 2em;
height: 2em;
}
e l'effettivo pulsante utilizzando lo stile:
<h:commandButton
value="?"
styleClass="#{obs.observation.observationExtent == -1.0 ? 'obsOptBtnSel' : 'obsOptBtnUns'}"
id="unknownButton"
/>
Quindi, si potrebbe pensare che erediterei gli stili dalla skin blueSky laddove rilevante, e quindi poiché sto specificando una classe di stile, tutte le proprietà menzionate nel foglio di stile personalizzato verranno sovrascritte.
Invece, quando guardo l'elemento in Firebug, vedo il mio styleClass essere sovrascritto da quello specificato dallo skin, ad es. continua a usare l'immagine di sfondo blueSky anziché la mia.
So che potrei risolvere questo problema semplicemente mettendo! Importante dopo tutto il mio stile nel foglio di stile, ma quello sembra un modo davvero schifoso e non necessario per affrontare questo problema.
Cosa sto facendo di sbagliato qui? C'è un'altra soluzione?
Balus vince ancora! E ho imparato qualcosa di nuovo sui CSS. Avevo l'impressione che lo styling più specifico avrebbe sempre vinto in uno scenario di override, ma chiaramente non è così. Grazie! – user470714
Prego. Per avere una migliore comprensione delle precedenze CSS, penso che questo articolo sia di buona lettura: http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/ – BalusC
E c'è un modo per includere i nostri file css ** dopo ** i faccendieri in testa? Con lo stesso livello di selettore CSS, potrebbe sovrascrivere quelli di ricchezze ... –