Grund:
Es gibt möglicherweise ein Compiler-Version Problem, das die Probleme hier verursacht. Der in der Frage angegebene Code, wenn er unter Verwendung der neuesten Version des Compilers unter Sassmeister.com oder CodePen kompiliert wird, ergibt das folgende CSS. Dieses CSS würde perfekt funktionieren, selbst wenn Sie nur 4 Elemente haben.
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) .agenda-button,
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-event .agenda-button,
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) .agenda-button,
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-event .agenda-button,
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-magazine .agenda-button,
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-magazine .agenda-button {
border-bottom: 0;
}
Aber wenn ich den gleichen Code in Fiddle kompilieren, erhalte ich die folgenden Ausgabe (aus Dev Console):
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) .agenda-button,
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-event .agenda-button,
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) .agenda-button,
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-magazine .agenda-button {
border-bottom: 0;
}
Wie würden Sie sehen, es gibt zwei Selektoren, die aus der Gruppe fehlen . Sie sind wie folgt:
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-event .agenda-button,
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-magazine .agenda-button,
Hier die erste ist sehr kritisch für die unten gezeigte Struktur, weil die .agenda-magazine
Artikel sind die erste (und der 4. letzte Punkt) und alle Gegenstände, die es als .agenda-event
Artikel folgen. Daher wird der untere Rand der gleichgeordneten Elemente, die .agenda-event
sind, nicht ungültig gemacht.
<div class="agenda-group-content">
<div class="agenda-magazine"></div>
<div class="agenda-event"></div>
<div class="agenda-event"></div>
<div class="agenda-event"></div>
</div>
Die folgende Selektor werden die Geschwister in unserem Fall nicht ansprechen, weil das erste Element nicht .agenda-event
.agenda-event:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-event .agenda-button
und weder die unten ein, weil die Geschwisterelemente würde, ist nicht .agenda-magazine
.
.agenda-magazine:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ .agenda-magazine .agenda-button
Lösung:
Die idealste Lösung wäre, den Compiler auf die neueste Version zu aktualisieren, aber wenn das nicht möglich welchen Grund auch immer ist, dann macht es mehr Sinn, nur Plug- in der kompilierten Version von Sassmeister oder CodePen in die CSS-Datei.
Oder alternativ könnten Sie manuelle Gruppierung von Selektoren vermeiden und @extend
Richtlinie verwenden.Diese Methode scheint auch in Fiddle gut zu funktionieren und so nehme ich an, dass es keine Probleme erzeugen würde, selbst wenn es eine Versionskonflikt gibt.
.agenda-event {
&:nth-of-type(4n+1):nth-last-of-type(-n+4),
&:nth-of-type(4n+1):nth-last-of-type(-n+4) ~ & {
.agenda-button {
border-bottom: 0;
color: red;
}
}
}
.agenda-magazine {
@extend .agenda-event;
}
Sie verwenden nth des Typs, welches Element wählen Sie? Könnten Sie Ihren gesamten Code posten, damit wir sehen können, was passiert? – Patrick
@ adamk22 Ich sehe nicht, was das Problem ist https://jsfiddle.net/XL2000/4y4kr9z0/1/ – Midas
Können wir Ihren HTML sehen? Der betreffende Code sollte gut funktionieren, solange es keine andere * Störung * gibt. – Harry