Как работает селектор CSS :last-of-type? Решение проблемы

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вы затрудняетесь, вот краткая суть: псевдокласс :last-of-type обозначает последний элемент определённого типа, но не класса. Этот селектор направлен на выбор последнего элемента среди группы однообразных элементов, но при этом он не выбирает последний элемент с классом .class на вашем веб-сайте. Вместо него можно использовать следующий подход:

CSS
Скопировать код
.class:not(.class ~ .class) {
  /* Ваши стили */
}

Данный селектор выбирает элементы с классом .class, у которых за собой не следуют другие элементы с таким же классом. Таким образом, стилизовать можно последний элемент определённого класса.

Кинга Идем в IT: пошаговый план для смены профессии

Множество селекторов-соседей

В мире CSS существует понятие "соседства". Внедрение комбинированных селекторов и псевдоклассов можно сравнить с разгадыванием загадок Да Винчи. И если вам нужно стилизовать последний элемент из группы однотипных элементов, использование .class:last-child может привести к неожиданным моментам в вашем коде. Гораздо более эффективно использовать селекторы классов, которые браузер обрабатывает с поразительной скоростью.

Улучшаем производительность и готовимся к будущему

Представьте, что вы разукрашиваете свой HTML, с быстротой распространяя по нему классы и идентификаторы. Такой подход повышает производительность обработки стилей, и это словно энергетический заряд для вашего CSS. Усовершенствовывая свои знания CSS, мы с нетерпением ожидаем появления новых стандартов, таких как селекторы CSS 4, чтобы сразу начать их применять.

Альтернативы в мире селекторов

Если last-of-type вас подводит, обратите внимание на такие псевдоклассы, как :not() и :last-child. Псевдокласс :not() – это универсальный инструмент, позволяющий выбрать элементы с более тонким контролем. Если последний требуемый элемент также является последним потомком своего родителя, то :last-child станет для вас наилучшим вариантом.

CSS
Скопировать код
p.visible:last-child {
  /* Делаем последний видимый параграф отчетливым */
  display: block;
}

Визуализация

Применение .class:last-of-type можно представить как робота, который пытается выбрать последнее яблоко из ряда разных фруктов:

Markdown
Скопировать код
Строка: 🧺🍏🧺🍊🧺🍋🧺🍏

Но .class:last-of-type вводится в заблуждение:

Markdown
Скопировать код
⛔️ Выбирает только: 🧺 — потому что это последняя корзина
✅ Игнорирует последнее 🍏 — он ищет ТОЛЬКО ПОСЛЕДНИЕ ЭЛЕМЕНТЫ СВОЕГО ТИПА

Таким образом, важно отслеживать {тип элемента}, а не {класс фрукта}!

Совместимость действий браузеров как ароматное кофе

С учетом множества аспектов совместимости браузеров, выбор лучшего CSS селектора может стать сложной задачей, подобно подбору кофейных зерен из обширного ассортимента. CSS3 псевдоклассы обеспечивают всемирную совместимость, в то время как CSS4 предлагает новшества, которые все еще находятся в разработке. Ресурсы вроде dabblet.com позволяют протестировать различные вариации этих инструментов.

Игра с изменением свойства ‘display’

Не забывайте о значимости свойства display в CSS контексте, которое контролирует видимость элементов – это подобно игре в прятки. Правильное использование display позволяет вам скрывать и отображать элементы быстрее, чем акробаты на карнавале меняют костюмы.

Полезные материалы

  1. :last-of-type – CSS: Cascading Style Sheets | MDN — подробная информация о :last-of-type от MDN.
  2. The Difference Between :nth-child and :nth-of-type | CSS-Tricks — это статья на CSS-Tricks, разъясняющая различия между двумя псевдоклассами.
  3. CSS :last-of-type Selector — руководство по :last-of-type от W3Schools.
  4. An Ultimate Guide To CSS Pseudo Classes And Pseudo Elements — Smashing Magazine — подробный анализ псевдоклассов и псевдоэлементов от журнала Smashing Magazine.
  5. Selectors Level 3 — технические спецификации от W3C, включающие информацию о :last-of-type и других селекторах.
  6. CSS Pseudo-Elements Module Level 4 — последние обновления по псевдоэлементам от W3C.