Modulo im mathematischen Sinn
Modulo liefert den Rest einer Division zweier ganzer Zahlen. Das Ergebnis der Division selbst wird verworfen.
Der Wertebereich liegt damit zwischen
0 und der um eins verminderten Zahl, bei Divisor 3 also zwischen 0 und 2.
Die Abweichung in WEBSALE V8s
Für einen Zähler ist die Null unpraktisch. Beim ersten Durchlauf einer Schleife soll eine1 herauskommen und nicht eine 0, und ein Klassenname zeile0 liest sich schlechter als zeile1.
Deshalb gilt in WEBSALE V8s: Wäre das Ergebnis null, wird stattdessen der Divisor ausgegeben.
x der interne Zähler, der bei jeder Ausführung des Tags um eins steigt, und n die Zahl in der Klammer.
Gleichwertig und oft bequemer zu lesen ist die geschlossene Form ((x − 1) mod n) + 1. Beide Schreibweisen liefern dieselben Werte.
Was dabei herauskommt
Bei einem Divisor von 3 ergibt sich diese Folge:
Ein Zähler, der noch bei null steht, liefert bei einem Divisor von 3 ebenfalls eine
3, weil 0 mod 3 null ergibt und damit die Ersetzung greift. Das fällt in einer Schleife nicht auf, weil dort beim ersten Durchlauf bereits hochgezählt wurde. Es kann aber auffallen, wenn Sie einen Zähler vor dem ersten Erhöhen auslesen.
Ein Beispiel
Abwechselnde Zeilenfarben in einer Produktliste:tr:nth-child(even) im Stylesheet. Sinnvoll bleibt der Zähler dort, wo die Zahl selbst gebraucht wird, beispielsweise um nach jedem dritten Eintrag eine Spalte umzubrechen.
Welche Tags so rechnen
Diese abgewandelte Modulo-Rechnung greift bei allen Tags, die eine Zahl als Klammerzusatz entgegennehmen und damit einen Zähler ausgeben. Dazu gehören unter anderem:PR-Position() kennt zusätzlich eine Form mit zwei Zahlen. Dann arbeitet das Tag nicht als Einzel-Tag, sondern als Klammerung, und greift, wenn das Ergebnis der Modulo-Rechnung der zweiten Zahl entspricht. So geben Sie beispielsweise nur bei jedem dritten Produkt etwas aus.
Referenz: PR-Position() · BASKET-PR-Position() · WS-CounterInc() · WS-Counter2Inc() · DC-Int1…3_mod()