
CSS позволяет выборочно оформлять элементы списка, включая только первый пункт. Для этого применяется псевдокласс :first-child, который выбирает первый элемент внутри родительского контейнера. Такой подход удобен, когда требуется визуально выделить начало списка – например, изменить цвет текста, шрифт, отступы или добавить декоративный маркер.
Пример базового правила: ul li:first-child { color: red; }. В этом случае только первый элемент списка станет красным, остальные останутся без изменений. Псевдокласс работает одинаково как с ненумерованными (ul), так и с нумерованными (ol) списками.
При сложной структуре важно учитывать вложенность. Если список содержит подсписки, :first-child будет воздействовать только на первый элемент каждого уровня. Чтобы изменить именно первый элемент всего блока, используется комбинация селекторов, например: ul > li:first-child. Такой синтаксис гарантирует точечное применение стиля без влияния на внутренние списки.
Правильное использование псевдокласса помогает не только улучшить визуальное восприятие контента, но и поддерживать единый стиль оформления без лишнего HTML-кода.
Выбор первого элемента списка с помощью псевдокласса :first-child

Псевдокласс :first-child позволяет выбрать первый дочерний элемент внутри родителя. В контексте списков он применяется для изменения стиля только первого элемента <li> без добавления классов в HTML.
Пример использования:
ul li:first-child {
font-weight: bold;
color: #2a7ae2;
}
В этом примере будет изменён только первый пункт списка, остальные элементы останутся без изменений. Такой подход подходит, если структура списка фиксирована и требуется выделить начальный элемент визуально.
Следует учитывать, что :first-child выбирает элемент, который действительно является первым дочерним узлом родителя. Если перед <li> расположен другой тег, например <h3> или комментарий, псевдокласс не сработает. Для обхода подобных ситуаций можно использовать :first-of-type, если требуется выбрать первый элемент определённого типа.
Использование :first-child упрощает поддержку кода, так как не требует изменения HTML-разметки и не зависит от дополнительных классов или идентификаторов.
Настройка внешнего вида первого элемента списка

Для изменения оформления первого элемента используется псевдокласс :first-child. Он позволяет применять отдельные стили только к первому пункту списка без добавления дополнительных классов.
Пример применения:
ul li:first-child {
font-weight: bold;
color: #2c3e50;
background-color: #f2f2f2;
}
Рекомендации по настройке:
- Меняйте отступы и маркеры для визуального выделения первого элемента:
ul li:first-child { margin-top: 10px; list-style-type: square; } - При использовании нумерованных списков можно изменить стиль цифры через свойство
::marker:ol li:first-child::marker { color: #e74c3c; font-size: 1.2em; } - Для списков с иконками или изображениями вместо стандартных маркеров применяйте
background-imageтолько к первому элементу:
ul li:first-child {
background: url('icon.svg') no-repeat left center;
padding-left: 25px;
}
Если структура сложная и первый элемент вложен в другой контейнер, уточняйте селектор, чтобы избежать непредвиденного наследования, например: .menu > li:first-child.
Используйте этот подход для выделения заголовочного пункта, промо-блока или навигационного элемента без изменения остальной структуры списка.
Применение разных стилей к первому элементу в упорядоченном и неупорядоченном списке
Чтобы выделить первый элемент списка, используется псевдокласс :first-child. Он применяется одинаково к тегам <ul> и <ol>, но оформление можно задать разное для каждого типа списка.
Пример для неупорядоченного списка:
ul li:first-child {
color: #2a7ae2;
font-weight: 600;
list-style-type: square;
}
Пример для упорядоченного списка:
ol li:first-child {
color: #e25a2a;
font-style: italic;
list-style-type: decimal-leading-zero;
}
Если требуется изменить только первый элемент внутри конкретного списка, добавляется класс:
ul.menu li:first-child {
text-transform: uppercase;
}
Важно помнить, что :first-child срабатывает только если элемент действительно является первым потомком родителя. Если перед первым <li> находится комментарий или текстовый узел, селектор не подействует. В таких случаях используют :first-of-type, который ориентируется на тип элемента:
ul li:first-of-type {
border-bottom: 1px solid #ccc;
}
Комбинирование псевдоклассов с классами или атрибутами позволяет гибко настраивать оформление, не затрагивая остальные элементы списка.
Использование комбинированных селекторов для точечного изменения первого элемента
Комбинированные селекторы позволяют задавать стили для первого элемента списка с учётом контекста, что особенно полезно при сложной структуре HTML. Такой подход исключает влияние на другие списки и обеспечивает точное применение стилей.
Пример базового использования:
ul.menu li:first-child {
font-weight: 600;
color: #2c3e50;
}
В этом случае изменяется только первый <li> внутри списка с классом .menu, без затрагивания других списков на странице.
Для уточнения области действия можно комбинировать несколько селекторов:
section.main ul.features > li:first-child {
background: #f4f4f4;
padding: 8px;
}
Здесь стили применяются исключительно к первому элементу списка .features, расположенного внутри секции .main. Знак > гарантирует, что правило касается только прямых потомков, а не вложенных списков.
- Используйте селектор
:first-childдля структур с одинаковыми тегами. - Добавляйте классы родителям, чтобы избежать конфликтов между списками.
- При работе с вложенными списками применяйте селекторы потомков
>илиul ul li:first-childдля строгого контроля области воздействия.
Точечное использование комбинированных селекторов делает код CSS более управляемым и снижает вероятность нежелательных пересечений стилей.
Стилизация первого элемента списка при наведении курсора
Для изменения внешнего вида первого элемента списка при наведении используется комбинация псевдоклассов :first-child и :hover. Это позволяет целенаправленно задать стили только для первого пункта, не затрагивая остальные.
Пример применения: ul li:first-child:hover позволяет изменить фон, цвет текста, размер шрифта или добавить анимацию при наведении на первый элемент. Рекомендуется использовать плавный переход через свойство transition, чтобы эффект выглядел аккуратно:
li:first-child:hover { background-color: #f0f0f0; color: #333; transition: 0.3s; }
Также можно комбинировать изменения шрифта и границ: li:first-child:hover { font-weight: bold; border-left: 3px solid #007BFF; }. Такой подход визуально выделяет первый элемент и улучшает читаемость списка.
При использовании вложенных списков важно учитывать контекст: селектор :first-child применится к первому элементу в каждом уровне вложенности. Чтобы воздействовать только на первый элемент верхнего уровня, рекомендуется использовать более точный селектор, например ul > li:first-child:hover.
Для динамических списков, создаваемых через JavaScript, применение :first-child:hover работает автоматически без дополнительного скрипта, что упрощает поддержку стилей при изменении структуры.
Применение CSS-переменных для гибкой настройки первого элемента списка
CSS-переменные позволяют централизованно управлять стилями и упрощают настройку внешнего вида первого элемента списка. Например, можно задать переменные для цвета текста, фона и размера шрифта, что упрощает изменение дизайна без правки каждой строки стилей.
Пример объявления переменных для списка:
:root {
--first-item-color: #ff4500;
--first-item-bg: #f0f0f0;
--first-item-font-size: 18px;
}
Чтобы применить эти переменные только к первому элементу списка, используется селектор :first-child:
ul li:first-child {
color: var(--first-item-color);
background-color: var(--first-item-bg);
font-size: var(--first-item-font-size);
}
Это решение позволяет быстро изменять оформление первого пункта списка, достаточно поменять значения переменных в :root, что особенно полезно для многостраничных проектов.
| Свойство | Описание | Пример значения |
|---|---|---|
| —first-item-color | Цвет текста первого элемента списка | #ff4500 |
| —first-item-bg | Фоновый цвет первого элемента | #f0f0f0 |
| —first-item-font-size | Размер шрифта первого пункта | 18px |
Использование переменных облегчает поддержку и обеспечивает единообразие: при смене темы достаточно обновить значения переменных, и первый элемент всех списков изменится автоматически. Для динамического изменения можно подключить JavaScript, изменяя document.documentElement.style.setProperty с новыми значениями переменных.
Вопрос-ответ:
Можно ли изменить только первый элемент списка без использования JavaScript?
Да, это возможно с помощью CSS-псевдокласса :first-child. Он позволяет выбрать первый элемент внутри родителя и применить к нему любые стили, например, изменить цвет текста, фон или шрифт. Например: li:first-child { color: red; } сделает первый пункт списка красным, не затрагивая остальные элементы.
Какие свойства CSS чаще всего применяют к первому элементу списка?
Чаще всего используют свойства для изменения визуальной части элемента: color для текста, font-weight или font-size для выделения, background-color для фона. Иногда применяют padding или margin, чтобы изменить отступы только у первого пункта. Эти изменения помогают выделить элемент среди остальных без модификации HTML.
Работает ли :first-child с вложенными списками?
Да, :first-child действует на первый элемент внутри каждого родителя. Если у вас есть вложенный список, псевдокласс применится к первому элементу внутри конкретного вложенного блока, а не ко всем пунктам на странице. Это позволяет задавать разные стили для верхнего уровня и внутренних списков.
Можно ли изменить нумерацию или маркер первого элемента списка через CSS?
Да, можно использовать свойство list-style-type для изменения типа маркера или list-style-image для установки изображения. Например, li:first-child { list-style-type: square; } заменит стандартную точку на квадрат у первого элемента. Это работает только на первом пункте без влияния на остальные элементы списка.
Какие ошибки чаще всего делают при попытке стилизовать первый элемент списка?
Частые ошибки связаны с неправильным использованием селекторов. Например, li:first не существует в CSS, нужно использовать li:first-child. Также люди забывают, что псевдокласс работает только на непосредственных потомках родителя, поэтому если есть текст или комментарий перед элементом, он может не сработать. Ещё одна ошибка — попытка изменить свойства, которые не наследуются, например background у li без видимого эффекта на маркере.
