Sobrescrever CSS no JSF

11 respostas
R

Galera,estou tentando sobrescrever um css mas está apresentando um comportamento um tanto estranho:

Saida do Firebug ANTES da mudança:

div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;width:;height:500px"

Sobrescrita:

<f:verbatim>
	       <style type="text/css">
	   #edt{
	      height: 100px;
	   }
	    
       </style>
       
	   </f:verbatim>

Saida do Firebug DEPOIS da mudança:

div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;height:100px;width:;height:500px"

Ideias?

11 Respostas

G

Existem várias formas de fazer isso.

.extdt-maindiv.rich-extdt-maindiv {
    height: 100px;
}

Outra forma e a melhor, é se tu tem algum elemento antes desta div.
Segue um exemplo abaixo:

<style>
    .teste .extdt-maindiv.rich-extdt-maindiv {
        height: 100px;
    }
</style>
<div class="teste">
    <div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;width:;height:500px"></div>
</div>

[]'s

R

Que tem várias forma eu sei :smiley: :smiley:

O que não entendi foi o porquê de ter botado os dois ‘height’…

Obrigado.

diogozero

Ao invés de colocar o atributo style, edite os estilos utilizando as classes caso o mesmo estilo se replique em outros locais ou pelo id se for um elemento único na página.

Isso aqui está errado

div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;height:100px;width:;height:500px"

  1. Por que o style começa com ;?
  2. O width não tem valor
  3. O height não tem ; para encerrar a linha
R

diogozero:
Ao invés de colocar o atributo style, edite os estilos utilizando as classes caso o mesmo estilo se replique em outros locais ou pelo id se for um elemento único na página.

Isso aqui está errado

div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;height:100px;width:;height:500px"

  1. Por que o style começa com ;?
  2. O width não tem valor
  3. O height não tem ; para encerrar a linha

Esse código é o html gerado pelo RichFaces.

diogozero

raf4ever:
diogozero:
Ao invés de colocar o atributo style, edite os estilos utilizando as classes caso o mesmo estilo se replique em outros locais ou pelo id se for um elemento único na página.

Isso aqui está errado

div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;height:100px;width:;height:500px"

  1. Por que o style começa com ;?
  2. O width não tem valor
  3. O height não tem ; para encerrar a linha

Esse código é o html gerado pelo RichFaces.


Ah, ok. Mas ele gera isso sozinho? Você escreveu alguma coisa no “style” do componente?
Estranho o Richfaces gerar esse código.

R

diogozero:
raf4ever:
diogozero:
Ao invés de colocar o atributo style, edite os estilos utilizando as classes caso o mesmo estilo se replique em outros locais ou pelo id se for um elemento único na página.

Isso aqui está errado

div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:90%;height:100px;width:;height:500px"

  1. Por que o style começa com ;?
  2. O width não tem valor
  3. O height não tem ; para encerrar a linha

Esse código é o html gerado pelo RichFaces.


Ah, ok. Mas ele gera isso sozinho? Você escreveu alguma coisa no “style” do componente?
Estranho o Richfaces gerar esse código.

Gera sozinho,o que eu escrevi segue abaixo:

<f:verbatim>
	       <style type="text/css">
	   #edt{
	      height: 100px;
	   }
	    
       </style>
G

Gera sozinho mesmo, por isso acho que você deve utilizar a segunda opção que te falei, utilizando herança em css.

[]'s

R

Segue como ficou(ainda nao funfou)

&lt;f:verbatim&gt;
	       &lt;style type="text/css"&gt;
	   #edt{
	      height: 100px;
	   }
	    
       &lt;/style&gt;
       
	   &lt;/f:verbatim&gt;

      &lt;div id="xpto" style="height:100px" &gt;
			  	&lt;rich:extendedDataTable style=";width:90%;height:100px" rowClasses="odd-row,even-row"  columnClasses="col" rows="5" id="edt" value="#{eventoController.evento.acoes}" var="edt"&gt;

Lembrando que esse div class=“edt” é o código do rich:extendedDataTable

G

Faz assim… Coloca uma class na sua div com id xpto e um styleClass no seu extendedDataTable. Feito isso insira o style como fiz abaixo.

<div id="xpto" style="height:100px" class="testeDiv">  
            <rich:extendedDataTable styleClass="testeExtended" style=";width:90%;height:100px" rowClasses="odd-row,even-row"  columnClasses="col" rows="5" id="edt" value="#{eventoController.evento.acoes}" var="edt"> 
</div>

<style>
    .testeDiv .testeExtended {
        height: 100px;
    }
</style>
R

Fiz esse teste,mesmo resultado.

Saida do Firebug:

div class="testeDiv"&gt;
&lt;div id="edt" class="extdt-maindiv rich-extdt-maindiv" style=";width:;height:500px"&gt;
&lt;/div&gt;
R

Resolvido.

&lt;f:verbatim&gt;
	 &lt;style type="text/css"&gt;
	  
	   .extdt-innerdiv{
        top: 0px;
        left: 0px;
        position: absolute;
        overflow-x:auto !important;
        overflow-y:auto !important;
    }

.rich-extdt-maindiv {
        height: auto !important;
    }

.rich-extdt-maindiv, .extdt-innerdiv {
        position: relative !important;
    }

.extdt-outerdiv {
        height: auto !important;
        overflow: visible !important;
    }

.extdt-content {
        height: auto !important;
    }
	   
	    
       &lt;/style&gt;
       
	   &lt;/f:verbatim&gt;
Criado 11 de outubro de 2012
Ultima resposta 15 de out. de 2012
Respostas 11
Participantes 3