логотип PurpleSchool
логотип PurpleSchool

Псевдоэлементы в CSS. Полное руководство с примерами

Автор

Дмитрий Нечаев

Псевдоэлементы в CSS позволяют разработчикам добавлять элементы, которых нет в исходной разметке HTML. Эти элементы создаются исключительно с помощью CSS и помогают улучшить внешний вид и функциональность веб-страницы без необходимости изменять HTML-код. В этой статье мы подробно рассмотрим основные псевдоэлементы, их применение и приведём примеры использования для различных ситуаций.

Основные псевдоэлементы

::before и ::after

Псевдоэлементы ::before и ::after используются для вставки контента до или после содержимого элемента. Эти псевдоэлементы часто применяются для декоративных целей, таких как добавление иконок, кавычек или других визуальных элементов.

Пример использования ::before и ::after

/* Добавление контента перед элементом */
p::before {
  content: "Примечание: ";
  font-weight: bold;
  color: red;
}

/* Добавление контента после элемента */
p::after {
  content: " (конец)";
  font-style: italic;
  color: gray;
}
<p>Это пример текста.</p>

В этом примере перед текстом абзаца добавляется слово "Примечание: " с красным цветом и жирным шрифтом, а после текста добавляется слово "(конец)" с серым цветом и курсивом.

::first-line

Псевдоэлемент ::first-line применяется к первой строке блока текста. Это полезно для стилизации первой строки текста, чтобы выделить её визуально.

Пример использования ::first-line

p::first-line {
  font-weight: bold;
  color: blue;
}
<p>Это пример текста, где первая строка будет выделена жирным шрифтом и синим цветом.</p>

В этом примере первая строка текста абзаца будет выделена жирным шрифтом и синим цветом.

::first-letter

Псевдоэлемент ::first-letter применяется к первой букве блока текста. Это полезно для создания эффектов, таких как "инициалы" в начале параграфов.

Пример использования ::first-letter

p::first-letter {
  font-size: 2em;
  color: green;
  float: left;
  margin-right: 5px;
}
<p>Это пример текста, где первая буква будет увеличена и окрашена в зеленый цвет.</p>

В этом примере первая буква текста абзаца будет увеличена и окрашена в зеленый цвет, а также смещена влево с отступом справа.

::placeholder

Псевдоэлемент ::placeholder применяется к тексту плейсхолдера внутри элементов <input> и <textarea>. Это позволяет стилизовать текст, который отображается до ввода данных пользователем.

Пример использования ::placeholder

input::placeholder {
  color: gray;
  font-style: italic;
}
<input type="text" placeholder="Введите ваше имя">

В этом примере текст плейсхолдера будет серым и курсивным.

Расширенные примеры

Создание сложных декоративных элементов

Псевдоэлементы ::before и ::after можно использовать для создания сложных декоративных элементов без изменения HTML-разметки.

Пример: Создание кавычек

blockquote::before {
  content: open-quote;
  font-size: 2em;
  vertical-align: -0.4em;
  color: lightgray;
}

blockquote::after {
  content: close-quote;
  font-size: 2em;
  vertical-align: -0.4em;
  color: lightgray;
}
<blockquote>Это пример цитаты, где используются псевдоэлементы для добавления кавычек.</blockquote>

В этом примере к цитате добавляются кавычки до и после текста, используя псевдоэлементы ::before и ::after.

Создание настраиваемых списков

Псевдоэлементы позволяют настраивать маркеры списков, заменяя стандартные маркеры на кастомные.

Пример: Кастомные маркеры списков

ul.custom-list li::before {
  content: "•";
  color: red;
  font-size: 1.5em;
  margin-right: 10px;
}
<ul class="custom-list">
  <li>Элемент списка 1</li>
  <li>Элемент списка 2</li>
  <li>Элемент списка 3</li>
</ul>

В этом примере маркеры списка заменяются на красные точки с использованием псевдоэлемента ::before.

Создание ленты новостей

Псевдоэлементы могут быть использованы для создания декоративных элементов в ленте новостей.

Пример: Лента новостей

.news-item {
  position: relative;
  padding-left: 20px;
  margin-bottom: 10px;
}

.news-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 10px;
  height: 100%;
  background-color: blue;
}
<div class="news-item">Новость 1</div>
<div class="news-item">Новость 2</div>
<div class="news-item">Новость 3</div>

В этом примере создаётся лента новостей с синей полосой слева от каждого элемента, используя псевдоэлемент ::before.

Заключение

Псевдоэлементы в CSS предоставляют мощные инструменты для улучшения визуального оформления веб-страниц без необходимости изменять HTML-код. Понимание различных способов использования псевдоэлементов, таких как ::before, ::after, ::first-line, ::first-letter и ::placeholder, помогает разработчикам создавать более гибкие и адаптивные стили. Экспериментируйте с псевдоэлементами, чтобы найти оптимальные решения для ваших проектов и добавить изюминку в дизайн ваших веб-страниц.

Стрелочка влевоПсевдокласс selection. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиСтрелочка вправо

Постройте личный план изучения Css до уровня Middle — бесплатно!

Css — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Css

Полное руководство по использованию свойства will-change в CSSПолное руководство по свойству transform-style в CSSУправление точкой опоры трансформаций в CSS с помощью transform-originИспользование функций CSS-трансформации; Полное руководствоПолное руководство по свойству transform-box в CSSУправление элементами с помощью свойства transform в CSSПолное руководство по свойству perspective-origin в CSSПолное руководство по свойству perspective в CSSПолное руководство по свойству backface-visibility в CSS
Универсальный селектор в CSS. Полное руководство с примерамиСелектор по тегу в CSS. Полное руководство с примерамиПеречисление селекторов в CSS. Полное руководство с примерамиСелектор потомка в CSS. Полное руководство с примерамиСелектор по идентификатору в CSS; Полное руководство с примерамиКомбинированные селекторы в CSS; Полное руководство с примерамиСелектор по классу в CSS; Полное руководство с примерамиСелектор по атрибуту в CSS; Полное руководство с примерами
Псевдокласс selection. Полное руководство с примерамиПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиПсевдоэлемент first-line в CSS. Полное руководство с примерамиПсевдоэлемент first-letter в CSS. Полное руководство с примерамиСвойство content в CSS. Полное руководство с примерамиПсевдоэлемент before в CSS. Полное руководство с примерамиПсевдоэлемент backdrop в CSS. Полное руководство с примерамиПсевдоэлемент after в CSS. Полное руководство с примерами
Псевдокласс where в CSS. Полное руководство с примерамиПсевдокласс visited в CSS. Полное руководство с примерамиПсевдоклассы группы type в CSS. Полное руководство с примерамиПсевдокласс target в CSS. Полное руководство с примерамиПсевдокласс root в CSS. Полное руководство с примерамиПсевдокласс required в CSS. Полное руководство с примерамиПсевдоклассы в CSS. Полное руководство с примерамиПсевдокласс placeholder-shown в CSS. Полное руководство с примерамиПсевдокласс optional в CSS. Полное руководство с примерамиПсевдокласс not в CSS. Полное руководство с примерамиПсевдокласс link в CSS. Полное руководство с примерамиПсевдокласс lang в CSS. Полное руководство с примерамиПсевдокласс is в CSS. Полное руководство с примерамиПсевдоклассы invalid и valid в CSS. Полное руководство с примерамиПсевдокласс indeterminate в CSS. Полное руководство с примерамиПсевдоклассы in-range и out-of-range. Полное руководство с примерамиПсевдокласс hover в CSS. Полное руководство с примерамиПсевдокласс has в CSS. Полное руководство с примерамиПсевдокласс focus-within в CSS. Полное руководство с примерамиПсевдокласс focus-visible в CSS. Полное руководство с примерамиПсевдокласс focus в CSS. Полное руководство с примерамиПсевдокласс empty в CSS. Полное руководство с примерамиПсевдоклассы disabled и enabled в CSS. Полное руководство с примерамиПсевдокласс default в CSS. Полное руководство с примерамиПсевдоклассы группы child в CSS. Полное руководство с примерамиПсевдокласс checked в CSS. Полное руководство с примерамиПсевдокласс active в CSS. Полное руководство с примерами
Функция var в CSS. Полное руководство с примерамиФункция url в CSS. Полное руководство с примерамиФункция repeating-radial-gradient в CSS. Полное руководство с примерамиФункция repeating-linear-gradient в CSS. Полное руководство с примерамиФункция repeating-conic-gradient в CSS. Полное руководство с примерамиФункция radial-gradient в CSS. Полное руководство с примерамиФункция min в CSS. Полное руководство с примерамиФункция max в CSS. Полное руководство с примерамиФункция linear-gradient в CSS. Полное руководство с примерамиФункция image-set в CSS. Полное руководство с примерамиФункции фильтров в CSS. Полное руководство с примерамиФункция conic-gradient в CSS. Полное руководство с примерамиФункция clamp в CSS. Полное руководство с примерамиФункция calc в CSS. Полное руководство с примерамиФункция attr в CSS. Полное руководство с примерами
Вендорные префиксы в CSS. Полное руководство с примерамиКонтекст наложения в CSS. Полное руководство с примерамиСпецифичность в CSS. Полное руководство с примерамиПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиНаследование в CSS. Полное руководство с примерамиCSS-правило. Полное руководство с примерамиКомментарии в CSS. Полное руководство с примерамиПринцип каскада в CSS. Полное руководство с примерамиБлочная модель в CSS. Полное руководство с примерамиСвойство all в CSS. Полное руководство с примерамиПодключение стилей к HTML. Полное руководство с примерами
Полное руководство по свойству will-change в CSSПолное руководство по transition-timing-function в CSSОсновы использования transition-property в CSS; управление плавными переходамиCSS transition-duration; Полное руководство по управлению продолжительностью переходовCSS transition-delay; Полное руководство по управлению задержкой переходовCSS transition; Полное руководство по созданию плавных переходовCSS @keyframes; Полное руководство по созданию анимацийCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-play-state; Полное руководство по управлению анимациямиCSS animation-name; Полное руководство по заданию имени анимацииCSS animation-iteration-count; Полное руководство по управлению количеством повторений анимацииCSS animation-fill-mode; Полное руководство по управлению состоянием элементов после анимацииCSS animation-duration; Полное руководство по управлению длительностью анимацииCSS animation-direction; Полное руководство по управлению направлением анимацииCSS animation-delay; Полное руководство с примерамиCSS-анимации; Полное руководство с примерами
Открыть базу знаний

Лучшие курсы по теме

изображение курса

HTML и CSS

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Frontend
Mobile
изображение курса

TypeScript с нуля

Антон Ларичев
иконка часов6 бесплатных уроков
иконка звёздочки рейтинга4.8
Backend
Frontend
Mobile
изображение курса

Next.js - с нуля

Антон Ларичев
иконка часов8 бесплатных уроков
иконка звёздочки рейтинга4.7
Frontend