CSS и вёрстка

Как сделать фон под текстом css

📅 ⏱ 22:10 ⏳ 1 мин 💬 0

Как сделать фон под текстом css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем

Коротко: фон под текстом делают свойством background-color у строчного элемента (span) — тогда фон «обтягивает» только текст, а не всю строку. Для многострочного текста важен box-decoration-break. Ещё варианты: градиент-маркер, background-clip: text (текст-градиент) и псевдоэлемент для подсветки.

Кому и зачемЧастые задачи: выделить важное «маркером», сделать подпись на плашке, подложку под заголовком, эффект подсветки текста. Важно понимать разницу между фоном строчного элемента и фоном блока.

Главное отличие

Что красим Результат
p { background: … } фон на всю ширину блока
span { background: … } фон только под текстом
mark { … } подсветка «как маркер», семантично

Вкладки: способы сделать фон под текстом




CSS
p .hl {
  background: #ffe58a;
  padding: 2px 4px;
  border-radius: 3px;
}

Оберните нужный фрагмент в span с классом. Фон ляжет только под текст. padding добавит «воздуха», border-radius сделает мягкие края.

CSS
.hl {
  background: #ffe58a;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 2px 4px;
}

Если выделенный текст переносится на новую строку, без этого свойства левый и правый padding применяются только к началу и концу целого фрагмента. clone повторяет отступы на каждой строке.

CSS
mark {
  background: #ffe58a;
  color: inherit;
  padding: 0 3px;
}

Тег mark изначально означает «выделенный текст» и полезен и для SEO, и для доступности. Уберите жёлтый по умолчанию и задайте свой цвет.

CSS
.grad {
  background: linear-gradient(90deg, #003F8F, #992222);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

Это обратный приём: не фон под текстом, а текст «залит» градиентом. Работает в современных браузерах.

Осторожно с контрастомЖёлтая подсветка с белым или светлым текстом нечитаема. Выделяйте тёмным текстом на светлом фоне или светлым на тёмном — проверяйте контраст.

Подсветка через псевдоэлемент

Если нужно, чтобы полоса шла не строго по тексту, а «с выходом» за края, используйте псевдоэлемент:

CSS
.mark-hl { position: relative; }
.mark-hl::before {
  content: "";
  position: absolute;
  left: -4px; right: -4px;
  top: 20%; bottom: 20%;
  background: rgba(255, 229, 138, .7);
  z-index: -1;
}

Так делают «маркерную» подсветку, которая заезжает за текст с обеих сторон.

Частые ошибки: причина → решение

Симптом Причина Решение
Фон на всю ширину фон у блочного элемента красить span
Отступы только по краям строки нет box-decoration-break добавить clone
Фон «уехал» под текст нет z-index: -1 поставить отрицательный слой
Текст не виден плохой контраст изменить цвет текста

Проверьте себя

Чек-лист




Как сделать фон строго под текстом, а не на всю строку?




Зачем нужно box-decoration-break: clone?




Вопросы и ответы

mark семантичен для «выделенного» текста. span универсален и подходит для любого оформления. Оба красят фон только под текстом.

Псевдоэлементом ::before с отрицательными left/right и z-index: -1 под текстом.

Да, background-image у span тоже работает, но с несколькими строками ведёт себя нестабильно. Для картинки-подложки лучше псевдоэлемент с растяжением.

Через linear-gradient с позицией внизу или text-decoration с толщиной и цветом. Часто удобнее градиент-фон нужной высоты у нижнего края.

Итоги

  • Фон под текстом — свойство у строчного элемента (span/mark).
  • Для переноса строк нужен box-decoration-break: clone.
  • Маркерную полосу рисуют псевдоэлементом с z-index: -1.
  • Всегда следите за контрастом текста и фона.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость