Можно ли использовать селектор CSS3 :first-of-type
для выбора первого элемента с заданным именем класса? У меня не получилось пройти тест, так что я думаю, что нет?
Кодекс ( http://jsfiddle.net/YWY4L/ ):
p:first-of-type {color:blue}
p.myclass1:first-of-type {color:red}
.myclass2:first-of-type {color:green}
<div>
<div>This text should appear as normal</div>
<p>This text should be blue.</p>
<p class="myclass1">This text should appear red.</p>
<p class="myclass2">This text should appear green.</p>
</div>
источник
.myclass1
Селектор будет выбирать каждый элемент.myclass1
. Селектор.myclass1 ~ .myclass1
использует общий комбинатор одноуровневых элементов для выбора каждого элемента с классом,.myclass1
который является последующим одноуровневым элементом элемента с классом.myclass1
. Это объясняется удивительно подробно здесь .В проекте CSS Selectors Level 4 предлагается добавить
of <other-selector>
грамматику в:nth-child
селектор . Это позволит вам выбрать n- го потомка, соответствующего данному другому селектору:В предыдущих черновиках использовался новый псевдокласс,
:nth-match()
так что вы можете увидеть этот синтаксис в некоторых обсуждениях этой функции:Теперь это реализовано в WebKit и, следовательно, доступно в Safari, но, похоже, это единственный браузер, который его поддерживает . Имеются заявки на его реализацию Blink (Chrome) , Gecko (Firefox) и запрос на его реализацию в Edge , но нет видимого прогресса по любому из них.
источник
Это не позволяет использовать селектор CSS3 : first-of-type для выбора первого элемента с заданным именем класса.
Однако, если у целевого элемента есть предыдущий одноуровневый элемент, можно объединить псевдокласс CSS отрицания и соседние селекторы одноуровневого элемента, чтобы сопоставить элемент, который не сразу имеет предыдущий элемент с тем же именем класса:
Пример полного рабочего кода:
источник
Я нашел решение для вашей справки. из некоторой группы div выберите из группы двух одинаковых div первого класса
Кстати, я не знаю, почему
:last-of-type
работает, но:first-of-type
не работает.Мои эксперименты на jsfiddle ... https://jsfiddle.net/aspanoz/m1sg4496/
источник
Это старая ветка, но я отвечаю, потому что она по-прежнему отображается в списке результатов поиска. Теперь, когда будущее наступило, вы можете использовать псевдоселектор: nth-child.
Псевдоселектор: nth-child является мощным - круглые скобки принимают формулы, а также числа.
Подробнее здесь: https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
источник
В качестве резервного решения вы можете обернуть ваши классы в родительский элемент следующим образом:
источник
Не знаю, как это объяснить, но я столкнулся с чем-то похожим сегодня. Не в состоянии установить,
.user:first-of-type{}
пока.user:last-of-type{}
работал нормально. Это было исправлено после того, как я поместил их в div без какого-либо класса или стиля:https://codepen.io/adrianTNT/pen/WgEpbE
источник
Вы можете сделать это, выбрав каждый элемент класса, который является родным братом того же класса, и инвертировать его, что в значительной степени выберет каждый элемент на странице, поэтому вам придется выбирать класс снова.
например:
источник
Просто
:first
работает для меня, почему это еще не упомянуто?источник
:first
это псевдокласс, связанный с печатью.