Nicht nur das Einfärben, auch abwechselnde Eigenschaften sind eine häufig vorkommende Aufgaben beim Design von Webseiten.
Im statischen HTML benutzt man z.B. für jede Tabellenreihe eine eigene CSS-Klasse.
Oft kommen die Inhalte aber aus einer Datenbank.
Das Problem ist, wie man dem dynamischen Inhalt unterschiedliche Klassen zuweisen kann.
Lösung:
Ein einfacher Weg ist der in PHP eher selten gebrauchte Modulo-Operator.
Der Modulo-Operator ist das Prozentzeichen %. Er gibt den ganzzahligen Rest einer Division zurück.
13 % 5 ist zum Beispiel gleich 3. Mathematisch korrekt ausgedrückt: 13 ist kongruent 3 modulo 5.
<?php
$rest = 13%5;
echo "Der Rest von 13 durch 5 ist: ".$rest;
// Der Rest ist 3, denn 13 = (2*5)+3 = 10+3
?>
Bei einer Datenbankabfrage werden de Ergebnisse in der Regel durch eine while-Schleife ausgegeben. Dies kann man sich zunutze machen, indem der Modulo-Operator innerhalb eingesetzt wird.
$row = 0;
while(...) {
$row++;
$cssKlasse = "cssKlasse".$row%2;
}
$row%2 gibt also abwechselnd cssKlasse1 und cssKlasse0 zurück, während $row sich bei jedem Durchgang um eins erhöht.
Das entsprechende Stylesheet, das die Elemente (z.B. Tabellenreihen) in unterschiedlichen Graustufen darstellt sieht dann so aus:
.cssKlasse0 {
background: #E8E8E8;
}
.cssKlasse1 {
background: #CECECE;
}
Bookmarks:
Delicious Facebook Google Yahoo Mr. Wong Linkarena Digg