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
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.
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)
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.
Verwenden Sie jQuerys gerade / ungerade untergeordnete Implementierung
Ja. Sie können JavaScript verwenden, um diese Elemente durchzugehen und ihre Klassen nach even / odd zurückzusetzen.