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???
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>"; } ?>
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.
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
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
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
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...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden