Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Porque as linhas não mudam de cor?

Recommended Posts

Se a variável
$corLinha
entrega seu valor corretamente em


{
$corLinha = ($contador % 2 == 0) ? "#FFF" : "#999999";

echo "<tr style=\"background:".$corLinha."\">";
echo " <td>".formataData2($datamatricula)."</td>";
echo " <td>".$nomealuno."</td>";
echo " <td>".$idade." anos</td>";
echo " <td>".$social."</td>";
echo "</tr>";

$contador++;
}

Porque então que as linhas não mudam de cor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque:

echo "<tr style=\"background:".$corLinha."\">";
por

echo '<tr style="background:'.$corLinha.';">';
Não funcionou da forma q você fez, pq o html q você estava gerando estava errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda da pra remover esse monte de aspas a barras, deixando o codigo mais facli de ler

echo "<tr style='background: $corLinha'>";

Mas o problema nao parece ser nessa linha, testei das 3 formas e funciou.

 

Você abriu a tag <table>?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ambos os jeitos não muda a cor da linha


echo '<tr style="background:\''.$corLinha.'\';">';
echo "<tr style='background: $corLinha'>";

Veja como sai o html da forma que fiz:


<tr style="background:#FFF">
<td>20/12/1970</td>
<td>Ailton José</td>
<td>88 anos</td>
<td>9</td><
</tr>

Veja código completo:


<?php
$cursosStr = "
SELECT idcurso, nomecurso, diasemana
FROM cursos
WHERE idcurso = ".$_POST["idcurso"];

$cursosQuery = $conexao->Query($cursosStr);
if ($cursosQuery->num_rows == 0)
{
echo "Ainda não há cursos cadastrados!";
}
else
{
list($idcurso, $nomecurso, $diasemana) = $cursosQuery->fetch_row();
{
echo "Alunos inscritos na turma: ".$nomecurso."<br />Dia da Semana: ".$diasemana."<br />";

$alunosCursoString = "
SELECT
idaluno,
datamatricula,
social,
nomealuno,
idade
FROM alunos
WHERE idcurso = ".$_POST["idcurso"]."
ORDER BY nomealuno, datamatricula";

$alunosCursoQuery = $conexao->Query($alunosCursoString);
if ($alunosCursoQuery->num_rows == 0)
{
echo "Ainda não há alunos matriculados nessa turma!<br />";
}
else
{
echo "<table align='center'>";
echo "
<tr>
<th style='width:100px'>Matricula</th>
<th style='width:500px'>Nome aluno</th>
<th style='width:50px'>Idade</th>
<th style='width:150px'>Projeto Social</th>
</tr>
";
$contador = 0;
while(
list(
$idaluno,
$datamatricula,
$social,
$nomealuno,
$idade
) = $alunosCursoQuery->fetch_row()
)
{
$corLinha = ($contador % 2 == 0) ? "#FFF" : "#999999";

//echo '<tr style="background:\''.$corLinha.'\';">';
//echo "<tr style='background: $corLinha'>";
echo "<tr style=\"background:".$corLinha."\">";
echo " <td>".formataData2($datamatricula)."</td>";
echo " <td>".$nomealuno."</td>";
echo " <td>".$idade." anos</td>";
echo " <td>".$social."</td>";
echo "</tr>";

$contador++;
}
echo "</table>";
}
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em algum lugar você definiu o cor da TD? Pois se você a definiu, o background da TD tem precedência sobre a TR (só aparecerá a cor da TR se a cor da TD for transparente, o que é diferente de branco).

 

Mas também, FFF é branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior que não.

Veja meu arquivo de stilo:

 

@charset "utf-8";
/* CSS Document */
 
*{
background-color:#87ceed;
}
body{
background-color:#FFF;
width:1000px;
margin: 0px auto 0px auto;
border: 1px solid #000;
box-shadow: 2px 0px 50px #000,-2px 0px 50px #000;
}
 
input[type=button],[type=submit],[type=reset]
{
width:180px;
height:50px;
margin:2px auto;
padding:4px;
}
 
input[type=text]
{
height:30px;
margin:2px auto;
padding:4px;
background-color:#FFF;
}
 
fieldset{
text-align:left;
}
 
label{
display:inline-block;
width: 150px;
height:30px; 
}
 
img{
border:0px;
}
 
a{
border-style:none; 
background-color:#FFF;
}
 
 
figure#imgLogoTopo{
text-align:center;
background-color:#FFF;
}
 
nav#menu1, #menu2, #menu3, #menu4{
text-align:center;
background-color:#FFF;
}
 
#conteudo{
margin-top:50px;
text-align:center;
background-color:#FFF;
}
 
.botoesForm
{
background-color:#FFF;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não testar com mais de um registro, nunca vai aplicar a cor #999999 e numa página branca não da pra diferenciar uma linha na cor branca (#FFF).


Sobre "/', uma string entre " " é processada mais rápida do que uma entre ' '.
E outra, em HTML utiliza-se " ".


Sem problema algum:

echo "<tr style=\"background:".$corLinha."\">";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, tem vários registros.

copiei a saída do codigo fonte e coloquei no Dreaweaver e fui no abiente visual e tabela esta com cores nos registros impares

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso aqui:

*{
background-color:#87ceed;
}

Significa que todos os elementos do DOM terão esse background, inclusive o TD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

teoricamente, você deveria ter que especificar quais elementos precisam dessa cor, mas por facilidade, acredito que possa fazer dessa forma:

* {
    background-color: #87ceed;
}

td {
    background-color: transparent;
}

Deve resolver seu problema.


Caso não funcionar da maneira acima, utilize !important:
td {
    background-color: transparent!important;
}
As vezes, o asterísco(*) tem precedência de outros tipos de elementos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

*{

background-color:#87ceed;

}

Você selecionou uma cor de fundo para todos elementos da página mas não sobreescreveu a cor de fundo para a tabela, suas linhas e colunas.

 

Já que está utilizando um arquivo CSS, então remova o atributo style da linha da tabela e adicione no final do seu arquivo CSS o seguinte código.

 

td, table, tr{background: none}
tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou pessoal.
Valeu, só que o cara viu o fundo branco e sisou de querer o branco mesmo.

Antes ele não queria branco.

 

Então foi só remover o cor de fundo do .*

 

Mas ficou a experiencia!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dúvida:

Porquê o código abaixo não funciona com <tr> mas funciona com td?

 

td {
background-color: transparent;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona, mas só que td está sobre tr.

Pense em tr e td como dois panos, tr de cor preta e td de cor branca. Daí você coloca td em cima de tr, sendo tr e td de mesma largura/altura qual cor irá aparecer?

O mesmo vale para tr e table, tr está sobre table...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.