Pessoa, boa tarde.
Tenho uma dúvida simples.
Estou fazendo um aplicativo e estou utilizando o Primefaces para gerar a interface gráfica.
A minha dúvida é se eu consigo substituir o CSS de um componente por outro que não seja o padrão do tema que coloquei.
Pois em uma determinada tela eu quero que um componente p:inputText que preciso que apareça em uma cor diferente.
Tentei usar o StyleClass, Style e até mesmo criar um arquivo CSS e importa-lo através do comando Class, mas não obtive sucesso.
Alguém saberia me explicar o por que?
Agradeço desde já pela ajuda!!!
[quote=Zenity]Pessoa, boa tarde.
Tenho uma dúvida simples.
Estou fazendo um aplicativo e estou utilizando o Primefaces para gerar a interface gráfica.
A minha dúvida é se eu consigo substituir o CSS de um componente por outro que não seja o padrão do tema que coloquei.
Pois em uma determinada tela eu quero que um componente p:inputText que preciso que apareça em uma cor diferente.
Tentei usar o StyleClass, Style e até mesmo criar um arquivo CSS e importa-lo através do comando Class, mas não obtive sucesso.
Alguém saberia me explicar o por que?
Agradeço desde já pela ajuda!!![/quote]
O problema é a prioridade do css(os pontos) olhe isso: http://tableless.com.br/pontuacao-especificidade-css/
Mas vc pode criar seu proprio tema, a especificação do prime explica como.
Outra forma é vc entrar em http://jqueryui.com/themeroller/
definir seu thema e colocar o css em seu projeto, essa forma para mim é a mais facil.
Dê uma olhada na documentação do Primefaces. Lá, ele informa as classes dos componentes, a partir dai você pode reescrever dentro do seu próprio CSS colocando !important para sobrescrever o padrão do Primefaces.
yoshikichi Vou consultar seus links e qualquer coisa volto aqui.
diogozero
O problema é que eu quero fazer um estilo apenas para um componente.
Mas vou analisar melhor os links que o outro amigo passou e qualquer coisa volto aqui.
Esse arquivo CSS ta dentro da pasta Resources.
Posso fazer qualquer modificação nele que não acontece nada nas minhas páginas.
Alguém saberia me dizer o por que?
yoshikichi Vou consultar seus links e qualquer coisa volto aqui.
diogozero
O problema é que eu quero fazer um estilo apenas para um componente.
Mas vou analisar melhor os links que o outro amigo passou e qualquer coisa volto aqui.[/quote]
Então se vc quer apenas um elemento, vc tem que verificar a prioridade do css.
Por exemplo, se o primefaces definiu um estilo:
tag .classe subtag{ ...}
E vc vai e define
.classeNova{...]
A pontuação da definição do css do prime é maior, ai a prioridade é dele, ou seja vc tem que definir um css com uma pontuação de prioridade maior.
yoshikichi Vou consultar seus links e qualquer coisa volto aqui.
diogozero
O problema é que eu quero fazer um estilo apenas para um componente.
Mas vou analisar melhor os links que o outro amigo passou e qualquer coisa volto aqui.[/quote]
Então se vc quer apenas um elemento, vc tem que verificar a prioridade do css.
Por exemplo, se o primefaces definiu um estilo:
tag .classe subtag{ ...}
E vc vai e define
.classeNova{...]
A pontuação da definição do css do prime é maior, ai a prioridade é dele, ou seja vc tem que definir um css com uma pontuação de prioridade maior.
[/quote]
yoshikichi obrigado pela atenção!
E com relação ao problema descrito acima, saberia me indicar o que pode ser?
VC viu que tem duas definição no css, a primeira defini um estilo para uma div com classA dentro de um outra div, a segunda defini um estilo apenas para uma classe.
Se vc contar os pontos de prioridade, a primeira definição supera a segunda, por isso todo css da 2 definição que também foi definido na 1 é ignorado, menos o font-size: 30px;
uma vez que não consta na primeira definição.
é mais ou menos isso que acontece no primefaces, suas definições tem prioridade menores.