есть ли для этого css-селектор? - PullRequest
1 голос
/ 28 октября 2011

У меня есть один или два div на странице с классом / классами foo.Мне нужно выбрать только второй, это означает, что если на странице есть только один, не выбирайте его.

Я пробовал div.foo:not(:first) и div.foo:nth-child(2), и оба, похоже, не работают.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Селектора :nth-of-class() нет, но если оба элемента div.foo имеют одного и того же родителя, вы можете использовать один из родственных селекторов в зависимости от того, идет ли второй div.foo сразу после первого или нет:

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

Если существует потенциально более двух таких div с, вам может потребоваться отменить стили в вышеприведенном правиле, используя один из них для любых последующих элементов:

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

И не беспокойтесь о поддержке браузера, это работает в IE7 +.

0 голосов
/ 28 октября 2011

Это зависит от нескольких вещей. Вы тестируете на IE? Элементы внутри одного и того же родителя?

Если элементы не находятся внутри одного и того же родителя, я не уверен, что они могут использовать эти конкретные селекторы, и, насколько я помню, они в настоящее время не работают в IE (исключая одноуровневые селекторы о IE9 +).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...