is hier een css selector voor?

Ik heb een of twee divs op de pagina met een klasse/klassen foo. Ik moet alleen de tweede selecteren, wat betekent dat als er slechts één op de pagina is, deze niet wordt geselecteerd.

Ik heb div.foo:not (: first) en div.foo:nth-child (2) geprobeerd en beide lijken niet te werken.

Om het even welke ideeën?

1
: eerst is een jQuery-selector. Het bestaat niet in CSS.
toegevoegd de auteur BoltClock, de bron

2 antwoord

Er is geen : n-of-class() selector, maar als beide div.foo -elementen hetzelfde bovenliggende element hebben, kunt u een van de sibling-selectors gebruiken, afhankelijk van of de tweede div.foo direct na de eerste komt of niet:

div.foo + div.foo /* Is immediately after */
div.foo ~ div.foo /* Is somewhere after among its siblings */

Als er potentieel meer dan twee van dergelijke div s zijn, moet u de stijlen in de bovenstaande regel mogelijk ongedaan maken door een van deze stijlen te gebruiken voor volgende elementen:

div.foo + div.foo ~ div.foo
div.foo ~ div.foo ~ div.foo

En maak je geen zorgen over browserondersteuning, dit werkt in IE7 +.

4
toegevoegd
Werkt ook alleen als ze zich allebei in dezelfde ouder bevinden.
toegevoegd de auteur Sivvy, de bron
Als uw div.foo -elementen niet hetzelfde bovenliggende element hebben, moet u jQuery gebruiken met uw eerste selector, zoals in $ ('div.foo:not(:first )) .
toegevoegd de auteur BoltClock, de bron

Het hangt van een paar dingen af. Test je op IE? Bevinden de elementen zich binnen dezelfde ouder?

Als de elementen niet in dezelfde ouder staan, weet ik niet zeker of ze die specifieke selectors kunnen gebruiken, en voor zover ik me kan herinneren, werken ze momenteel niet in IE (exclusief broer/zus selectors, en niet zeker van IE9 +) .

0
toegevoegd