PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : farben im ie anders als im ff, aber warum?


vossl
2007-01-23, 14:38:24
hallo,

habe hier eine tabelle, in die inhalt aus einer datenbank dargestellt werden soll.
damits etwas schicker wird, hab ich angegeben, dass jede zweite zeile die hintergrundfarbe gewechselt wird.

im firefox siehts gut aus (brauntöne), aber im internet explorer... das kann man ja keinem anbieten... einmal wirds blau und dann noch türkis...


woran liegts? sind die farbangaben im hexadezimalformat nicht eigenrlich eine eindeutige sache? da kann doch nicht hin-und herinterprtiert werden, oder?

hier ein auszug aus dem code:


<table class="Stil3" cellpadding="10">
<tr bgcolor="#E2D2B4" border="2">
<td width="200">Leih-Status:</td>
<td width="700">Buch:</td></tr>

<?php
$query = "select * from bestand order by autor";
$result = mysql_query($query, $connection);

for ($i=0; $i < mysql_num_rows($result); $i++)
{
$nr = mysql_result($result, $i, "nr");
$status= mysql_result($result, $i, "status");
$autor = mysql_result($result, $i, "autor" );
$titel = mysql_result($result, $i, "titel" );
$jahr = mysql_result($result, $i, "jahr" );
$sign = mysql_result($result, $i, "sign" );

if ($i % 2)
{
$bgcolor="#E2D2B4";

}
else
{
$bgcolor="#CEB583";

}

echo '
<tr bgcolor=" '.$bgcolor.' " class="Stil3">
<td align="center" width="200">Nr #'.$nr.' <img src="'.$status.'.gif" border="2"></td><td width="700"> '.$autor.' ('.$jahr.'). <i>'.$titel.'</i>. Signatur: '.$sign.' </td></tr>';
}
echo '</table>';


einer ne idee?

darph
2007-01-23, 14:59:18
Kannst du mal den Quelltext einer generierten Seite posten?


Mach aber vorher mal die Leerzeichen weg.
echo('<tr bgcolor=" '.$bgcolor.' " class="Stil3">');
ergibt <tr bgcolor=" #CEB583 " class="Stil3"> Vermutlich sind die Leerzeichen schuld.

Schöner ist es übrigens, wenn du das nicht über dieses Attribut machst (weil deprecated), sondern über die Klasse, wenn du eh schon CSS verwendest.
<tr class="Stil3 light"></tr>
<tr class="Stil3 dark"></tr>

und im CSS dann: tr.dark { background-color: #------; }
tr.light { background-color: #------; }
tr.Stil3 { color: #textfarbe;}

Du kannst einem Element zwei Klassen zuweisen, indem du sie durch Leerzeichen trennst. So trennst du Logik von Datenstruktur von visueller Repräsentation. Wenn du eines davon änderst, mußt du nicht später alles andere auch ändern. Du brauchst nicht im Programmcode rumfummeln, wenn du irgendwann man das Design änderst - sonder nur noch im CSS-File.