Kann man CSS: nth-child (oder ähnlich) verwenden, um Elemente in HTML zu markieren, z. B. alle anderen 4 Knoten?

8

Etwas Hintergrund: Ich versuche ein Layout zu erreichen, bei dem die Elemente von links nach rechts in einer Zeile, dann von rechts nach links in der nächsten Zeile fließen usw. Ich habe etwas in CodePen ausgeheckt. Schau hier nach (es erklärt es besser als ich kann!)

>

Ich habe das obige Beispiel mit nth-child erreicht, aber es ist 'hardcoded', z. B.

HTML:

%Vor%

CSS:

%Vor%

Nun, das funktioniert, aber es ist offensichtlich auf eine bestimmte Anzahl von Elementen beschränkt (wie viele gebe ich in das CSS ein!). Ich weiß, dass ich :nth-child(4n) machen kann, um jedes vierte Element zu erhalten, aber ich möchte in der Lage sein, und die nächsten vier auszuwählen. Es ist fast wie nth-child(odd) , aber für Gruppen von 4 Elementen / p>

Gibt es eine Möglichkeit, dies programmatisch zu tun? Ich habe Tweaking Quantity Queries ( Ссылка ) angeschaut, aber das scheint nicht ganz das zu sein, wonach ich suche ...

Jede Hilfe sehr geschätzt !!

    
Paul 09.09.2015, 08:38
quelle

2 Antworten

5

Ja, Sie können eine Gruppe von nth-child selectors wie im folgenden Ausschnitt verwenden, um eine sich wiederholende Gruppe von Elementen basierend auf einem Muster auszuwählen.

Es ist zu beachten, dass die Auswahl jedes vierten Elements und der nächsten vier nach der Auswahl aller Elemente nach dem vierten Element erfolgt. Daher habe ich das Sample auf die nächsten zwei Elemente beschränkt.

Erklärung des Selektors (wählt 4., 5., 8., 9. Elemente usw.):

  • nth-child(4n+4) - wählt 4. (4 * 0 + 4), 8. (4 * 1 + 4), 12. (4 * 2 +4) Elemente
  • nth-child(4n+5) - wählt 5. (4 * 0 + 5), 9. (4 * 1 + 5), 13. (4 * 2 + 5) Elemente.

Wie Sie aus der Erklärung sehen können, beginnt die Reihe mit dem vierten Element und wiederholt sich von da an. Wenn Sie mit der Reihe aus dem ersten Element (zB 1., 2., 5., 6. usw.) beginnen möchten, können Sie die Auswahlgruppe als div:nth-child(4n+1), div:nth-child(4n+2) verwenden.

%Vor% %Vor%

Erklärung des Selektors (wählt 4., 5., 12., 13. Element usw.):

  • nth-child(8n+4) - wählt 4. (8 * 0 + 4), 12. (8 * 1 + 4), 20. (8 * 2 +4) Elemente
  • nth-child(8n+5) - wählt 5. (8 * 0 + 5), 13. (8 * 1 + 5), 21. (8 * 2 + 5) Elemente.

Wie Sie aus der Erklärung sehen können, beginnt die Reihe mit dem vierten Element und wiederholt sich von da an. Wenn Sie mit der Reihe aus dem ersten Element (zB 1., 2., 5., 6. usw.) beginnen möchten, können Sie die Auswahlgruppe als div:nth-child(4n+1), div:nth-child(4n+2) verwenden.

%Vor% %Vor%
    
Harry 09.09.2015, 08:42
quelle
0

Zusätzlich, wenn Sie die Kinder 5,6,7,8 von 16 auswählen möchten, können Sie

verwenden %Vor%

Vielleicht finden Sie selbst heraus, was das ist;)

    
Inuyaki 09.09.2015 09:21
quelle

Tags und Links