CSS3 селектор последний элемент, который не относится к классу X - PullRequest
3 голосов
/ 17 ноября 2011

Я пытаюсь стилизовать последний элемент класса Y, который не принадлежит классу X. Пример HTML:

<div class="container">
  <div class="Y"></div>
  <div class="Y"></div> <!-- this I want to style -->
  <div class="X Y"></div>
</div>

Я пробовал оба

.Y:not(.X):last-child

и

.Y:not(.X):last-of-type

но они не дают желаемого результата в хроме.Мне интересно, если это вообще можно сделать в CSS3 ...

Ответы [ 3 ]

1 голос
/ 18 ноября 2011

В настоящее время это невозможно с помощью селекторов CSS.

Требуемое поведение только указано в CSS-селекторах уровня 4, вам может понадобиться :not(.X):nth-last-match(1, .Y), но в настоящее время ни один браузер не поддерживает его.

Итак, наилучшее решение - использовать jQuery, как написано в комментарии @BoltClock, или генерировать нужный класс в html.

1 голос
/ 17 ноября 2011

Вы можете выбрать элемент напрямую, используя правило:

div.container > div:nth-child(2)

в противном случае, если вы знаете, что последний div.y всегда непрерывен до div.x.y, а затем идет конец родительского узла, вы можете выбрать его, используя правило:

div.container > div:nth-last-child( 2 )
0 голосов
/ 17 ноября 2011

вы можете попробовать

.Y:nth-last-child(-n+3) + :not(.X)
//or 
.Y:nth-last-child(-n+3) + div[class="Y"]

РЕДАКТИРОВАТЬ: Это будет работать со случайным числом элементов. Проверьте, что jsfiddle http://jsfiddle.net/brMWw/1/

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