Eine bessere Möglichkeit, gerade / ungerade Zeilen in der Tabelle zu bestimmen

7

Angenommen, Sie haben eine Webseite mit folgendem Beispielcode:

%Vor%

Diese sind nicht in einer Schleife, also muss ich explizit 'gerade' 'ungerade' sagen. Später, wenn wir uns entscheiden, eine neue Zeile zwischen something2 und something3 hinzuzufügen, müssen wir für den Rest der Zeilen auch 'even' 'odd' ändern.

Gibt es einen Weg in CSS, dies automatisch in IE6 zu tun?

Momentan ist das mein CSS Code für even

%Vor%

Ich hatte bereits jQuery

    
n00bstackie 01.06.2009, 18:23
quelle

5 Antworten

13

Probier jQuery aus. Dann können Sie das einfach tun:

%Vor%

Der Selektor ": visible" ist nicht wirklich notwendig, aber wenn Sie eine Tabelle filtern, indem Sie einige Zeilen ausblenden, funktioniert die Methode immer noch korrekt.

    
Philippe Leybaert 01.06.2009, 18:28
quelle
12

Der Weg dazu wäre, die Regeln n-Kind (gerade) und (ungerade) zu verwenden. Leider, und das sollte nicht überraschen, unterstützt IE6 dies nicht. Sie haben also ein paar Optionen:

A) Verwenden Sie Javascript, mit dem offensichtlichen Nachteil, dass es nicht für Leute mit JS deaktiviert funktioniert:

%Vor%

Wenn Sie erwarten, dass Sie in Ihrer Anwendung dynamischeres clientseitiges Verhalten benötigen, könnten Sie eine Bibliothek wie jQuery überprüfen. Für nur das ist es unnötig, aber es macht die Arbeit mit Javascript über Browser hinweg ein Kinderspiel. Sie würden das obige mit jQuery tun, wie es in dieser Antwort gezeigt wird.

Je nach Zielgruppe kann Javascript durchaus akzeptabel sein. Wenn nicht, dann kannst du vielleicht ...

B) Vereinfachen Sie Ihr CSS und machen Sie es weiterhin manuell. Sie können nur die ungeraden Zeilen mit einer Klasse markieren und dann den Standardstil der Zeile als gleichmäßiges Stylen festlegen. Dies erspart Ihnen etwas Arbeit, wenn Sie Dinge bewegen.

C) Generieren Sie die Zeilen programmgesteuert. Es ist wirklich archaisch, solche Daten in eine feste Tabelle einzugeben, wenn Sie es oft genug aktualisieren, dass dies ein Problem ist. Ich bin mir Ihrer Situation offensichtlich nicht bewusst, aber es sollte trivial sein, dies irgendwie in einer einfachen Sprache wie PHP zu machen.

D) Hören Sie auf, einen wirklich veralteten Browser zu verwenden. :) (Dies ist nur halb Spaß, wie ich bin sicher, dass es außerhalb Ihrer Kontrolle)

    
Paolo Bergantino 01.06.2009 18:29
quelle
8

Der beste Ansatz wäre die :nth-child() Pseudoklasse .

Aber leider wird es noch nicht allgemein unterstützt. Sie werden wahrscheinlich dazu JavaScript verwenden müssen.

    
Gumbo 01.06.2009 18:29
quelle
5

Verwenden Sie jQuerys gerade / ungerade untergeordnete Implementierung

    
Mork0075 01.06.2009 18:25
quelle
0

Ja. Sie können JavaScript verwenden, um diese Elemente durchzugehen und ihre Klassen nach even / odd zurückzusetzen.

    
Assaf Lavie 01.06.2009 18:27
quelle

Tags und Links