pc-nico Geschrieben 16. März 2005 Geschrieben 16. März 2005 Hallo habe folgdendes Problem: Möchte in einer Tabelle die 1 3 5 7 ... Zeile z.b. in hellgrau haben und die Zeile 2 4 6 8 ... in dunkel grau zu zeit mache ich das so: <table> <tr> <td class="hell"></td> </tr> <tr> <td class="dunkel"></td> </tr> <tr> <td class="hell"></td> </tr> <tr> <td class="dunkel"></td> </tr> <tr> <td class="hell"></td> </tr> <tr> <td class="dunkel"></td> </tr> (Die Klassen sind dann halt irgendwo noch definert) Das bringt natürlich eine sehr hoch redundanz. Gibt es eine Möglichkeit mit CSS sowas nochmehr zu vereinfachen??? Zitieren
perdian Geschrieben 16. März 2005 Geschrieben 16. März 2005 Gibt es eine Möglichkeit mit CSS sowas nochmehr zu vereinfachen??? AFAIK: Nein, gibt es leider nicht. Deshalb wird sowas in der Regel serverseitig bei der Generierung der Seite geregelt, beispielsweise: <?php for($i=0; $i < 10; $i++) { echo "<tr>"; echo "<td style=\"background-color: "; echo ($i % 2 == 0) ? "green" : "blue"; echo "\">"; echo "Text"; echo "</td>"; echo "</tr>"; } ?> Zitieren
pc-nico Geschrieben 16. März 2005 Autor Geschrieben 16. März 2005 danke! ok, das habe ich mir schon gedacht.. Leider ist das nicht möglich, da es sich bei den Tabellen um statische HTML Seiten handelt. Zitieren
Flatscho Geschrieben 16. März 2005 Geschrieben 16. März 2005 naja wenn du z.b. öfters solche listen serverseitig zusammenbaust, könntest du auch eine einfache klasse schreiben: class Table { var $rows; //... function addRow($row_arr) { $this->rows[] = $row_arr; } function getHtmlCode() { $table = "<table>"; //html code der tabelle zusammenbauen //rows durchloopen und die arrays in rows auch durchloopen $table .= "</table>"; return $table; } function show() { echo $this->getHtmlCode(); } } Lässt sich natürlich noch beliebig erweitern Zitieren
kills Geschrieben 16. März 2005 Geschrieben 16. März 2005 Gibt es eine Möglichkeit mit CSS sowas nochmehr zu vereinfachen??? Ja gibt es laut standard! http://www.w3.org/Style/Examples/007/evenodd.html Aber leider kann das nicht jeder Browser siehe: http://dean.edwards.name/IE7/compatibility/nth-child.html (mit IE anschauen!) table.even tr:nth-child(even) { background: green; } Gruß, Markus Zitieren
perdian Geschrieben 16. März 2005 Geschrieben 16. März 2005 Ja gibt es laut standard! http://www.w3.org/Style/Examples/007/evenodd.htmlDas sieht ja richtig interessant aus. Aber leider kann das nicht jeder BrowserNaja wenn ich da lese "introduced in November 2001" dann wird es wohl noch locker bis 2010 dauern, bis die meisten Browser soweit sind und damit umgehen können Zitieren
kills Geschrieben 16. März 2005 Geschrieben 16. März 2005 Naja wenn ich da lese "introduced in November 2001" dann wird es wohl noch locker bis 2010 dauern, bis die meisten Browser soweit sind und damit umgehen können Naja ich schätze mal der FF kann das in der nächsten Version die im März kommt und der IE 10 wirds den CSS Std. 1.0 immer noch nicht richtig beherrschen... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.