Открыть сервис

SPAN

SPAN (от англ. span — промежуток, диапазон) — строчный (inline) элемент языка разметки HTML, предназначенный для выделения части текста или другого строчного содержимого с целью применения к нему стилей, атрибутов или скриптов без изменения структуры документа. В отличие от блочных элементов (например, <div>), <span> не создаёт переноса строки до и после себя и занимает только пространство, необходимое для его содержимого. Является одним из базовых элементов веб-вёрстки наряду с <div> и используется практически во всех современных веб-страницах.

История и стандартизация

Элемент <span> был впервые введён в спецификации HTML 3.2 (1997 год) как универсальный строчный контейнер. До его появления для стилизации отдельных фрагментов текста приходилось использовать элементы с семантической нагрузкой (например, <b>, <i>, <u>), что нарушало принцип разделения содержания и представления. <span> стал решением для ситуаций, когда требовалось применить стили или атрибуты к части текста, не имеющей собственного семантического значения.

В последующих версиях HTML (4.01, XHTML, HTML5) элемент <span> остался без изменений. В спецификации HTML5 он определён как «строчный контейнер без собственного значения» (non-semantic inline container). Его поведение полностью определяется атрибутами и CSS-правилами, применяемыми к нему.

Синтаксис и атрибуты

Элемент <span> является парным: открывающий тег <span> и закрывающий </span>. Между ними может располагаться любой строчный контент: текст, другие строчные элементы (например, <a>, <img>, <strong>), а также вложенные <span>.

Основные атрибуты

Все атрибуты, перечисленные в спецификации HTML для строчных элементов, применимы к <span>.

Отличия от <div>

Основное различие между <span> и <div> заключается в типе отображения по умолчанию:

Характеристика<span><div>
Тип отображенияСтрочный (inline)Блочный (block)
Перенос строкиНе создаётСоздаёт до и после
ШиринаПо содержимомуНа всю доступную ширину родителя
Допустимые вложенные элементыТолько строчныеЛюбые
Семантическая нагрузкаОтсутствуетОтсутствует

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

Применение

1. Стилизация фрагментов текста

Наиболее распространённое использование <span>выделение части текста для применения CSS-стилей:

``html <p>В этом предложении <span style="color: red;">красное слово</span> выделено цветом.</p> ``

2. Работа с JavaScript

Элемент <span> часто используется как цель для манипуляций через DOM:

``javascript const element = document.getElementById('counter'); element.textContent = newValue; ``

3. Иконки и символы

Многие библиотеки иконок (например, Font Awesome, Material Icons) используют <span> для отображения иконок:

``html <span class="material-icons">home</span> ``

4. Адаптивная вёрстка

С помощью <span> можно скрывать или показывать части текста на разных разрешениях экрана:

``html <p>Заголовок <span class="mobile-hidden">(дополнительная информация)</span></p> ``

5. Хранение данных

Атрибуты data-* позволяют хранить произвольные данные, доступные через JavaScript:

``html <span data-user-id="12345" data-role="admin">Иван Иванов</span> ``

6. Доступность (accessibility)

Хотя <span> сам по себе не имеет семантического значения, с помощью атрибута role ему можно придать роль для скринридеров:

``html <span role="status" aria-live="polite">Сообщение отправлено</span> ``

Стилизация через CSS

По умолчанию <span> не имеет никаких стилей. Все визуальные свойства задаются через CSS. Наиболее часто используемые свойства:

Ограничения

Альтернативы

В зависимости от задачи вместо <span> могут использоваться:

Выбор семантического элемента вместо <span> улучшает доступность и читаемость кода.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →