Während die wichtigen könnte es tun, sollten Sie vielleicht die Themebuilder CSS-Dateien überschreiben. Sehen Sie sich den Leitfaden zu Primefaces zur Verwendung eines benutzerdefinierten Stylesheets an. Primefaces ist grundsätzlich auf jQueryUI http://jqueryui.com/ aufgebaut, also überschreiben Sie es. (Sie können auch ein benutzerdefiniertes Thema erstellen, das oft die bessere Wahl ist).
Nehmen Sie sich einfach etwas Zeit und wenn Sie wirklich eine benutzerdefinierte Komponente benötigen, können Sie die Standardbibliothek erstellen und anpassen. Da Sie mit jQuery arbeiten, ist es ein einfaches Update.
Als Reaktion
Ich denke, der beste Weg einfach sein könnte, eine Standard-Schaltfläche verwenden und einen Verbundbauteil zu machen. Es hängt ganz davon ab, wie oft Sie es verwenden, wie wichtig es für die Website ist und was Sie tun müssen. Grundsätzlich rendert jQueryUI einen Button und einen Bereich, aber aufgrund der Art und Weise, wie die Flächen umhüllt sind, werden Sie Styles auf den OUTSIDE-Bereich anwenden, so dass die innere Regel nicht angewendet wird.
Als solches würde ich eine eigene Komponente entlang der Linien machen ->
<h:commandButton styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only ui-state-hover" style="${myOverridesHere}">
<p:ajax event="click" ... etc... read the manual/>
</h:commandButton>
Das Nettoergebnis ist, dass Sie „Ajax“, um auf den Befehls über die Primefaces-API hinzugefügt (was lebt ontop der Standard-JSF2-API. Ich hatte nicht die Notwendigkeit, dies noch zu testen, aber ich bin mir sicher, dass einige Variationen das tun würden, was Sie brauchen, ohne eine wichtige Kaskade zu erzwingen, die in der Regel schlecht ist , Sie benötigen die jQueryUI Stylesheets auf der Seite, damit dies funktioniert (offensichtlich).
hoffe, das hilft
Was ist die tatsächliche HTML-Ausgabe für die Komponente?Gibt es auch ein Standard-Stylesheet für PrimeFaces, und wenn ja, was ist darin enthalten? – ScottS
PrimeFaces basiert auf dem JQuery-System und ist ziemlich komplex. Firebug zeigt mir, dass mein Stil angewendet und dann außer Kraft gesetzt wird. Diese Frage wird wahrscheinlich von jemandem beantwortet, der weiß, wie PrimeFaces JQuery verwendet. – AlanObject
Firebug sollte Ihnen auch sagen, welcher Selektor es überschreibt. Das wird der Schlüssel sein, um die Lösung für Ihr CSS-Problem zu finden. Höchstwahrscheinlich wird es durch einen Selektor mit höherer Priorität (includes und id oder eine andere Klasse, kombiniert mit etwas anderem) oder einer nach Ihrer class-Bezeichnung in der Seitenlade-Reihenfolge des css überschrieben. – ScottS