Кратко
СкопированоС помощью тега <span>
можно выбрать часть текста или другой информации в блоке и стилизовать её.
Пример
Скопировано<p> Добавьте <span class="ingredient">базилик</span>, <span class="ingredient">арахис</span> и <span class="ingredient">чеснок</span> в блендер и перемешайте.</p>
<p> Добавьте <span class="ingredient">базилик</span>, <span class="ingredient">арахис</span> и <span class="ingredient">чеснок</span> в блендер и перемешайте. </p>
Как понять
СкопированоНапример, хочется, чтобы одно слово в абзаце было написано красным цветом. Помести это слово в коде в контейнер <span>
...<
и примени к нему CSS-стиль.
Этот тег очень похож на <div>
, потому что тоже помогает сгруппировать элементы, чтобы применить к ним единый стиль. Разница лишь в том, что <div>
собирает контент в отдельный блок, а <span>
выделяет строчку или даже одну букву в этом блоке. Поэтому <div>
называют блочными элементами, а <span>
— строчным.
Как пишется
Скопировано<span>...</span>
<span>...</span>
Подсказки
Скопировано💡 Иногда, чтобы отформатировать часть текста, можно использовать семантические элементы — это те, которые не просто являются контейнерами, а имеют своё значение. Например, тег <header>
, с помощью которого вы создаёте «шапку» своей страницы с меню и логотипом. Поэтому, если вместо <span>
можно использовать семантический тег, например, <address>
для выделения автора материала курсивом или <mark>
для выделения текста жёлтым маркером, то используйте их.
Ещё пример
Скопировано<p class="quote__text"> <span class="quote__text-letter">Р</span>азумные люди приспосабливаются к окружающему миру. Неразумные люди приспосабливают мир к себе. Вот почему прогресс определяется действиями неразумных людей.</p><p class="quote__author">Бернард Шоу</p>
<p class="quote__text"> <span class="quote__text-letter">Р</span>азумные люди приспосабливаются к окружающему миру. Неразумные люди приспосабливают мир к себе. Вот почему прогресс определяется действиями неразумных людей. </p> <p class="quote__author">Бернард Шоу</p>
.quote__text-letter { float: left; /* Обтекание символа текстом справа */ margin-right: 7px; /* Отступ справа */ color: #ed6742; /* Цвет символа */ font-family: "Roboto Slab", serif; /* Шрифт с засечками */ font-size: 52px; /* Размер шрифта */ line-height: 52px; /* Высота строки */}.quote__author { margin-top: 10px; padding: 10px 0; border-top: 1px solid #ed6742; /* декоративная граница */ font-style: italic; font-size: 14px; font-weight: 300;}
.quote__text-letter { float: left; /* Обтекание символа текстом справа */ margin-right: 7px; /* Отступ справа */ color: #ed6742; /* Цвет символа */ font-family: "Roboto Slab", serif; /* Шрифт с засечками */ font-size: 52px; /* Размер шрифта */ line-height: 52px; /* Высота строки */ } .quote__author { margin-top: 10px; padding: 10px 0; border-top: 1px solid #ed6742; /* декоративная граница */ font-style: italic; font-size: 14px; font-weight: 300; }
На практике
Скопированосоветует Скопировано
🛠 <span>
— крутой. Считается, что <span>
— это когда тебе уже нечего добавить к тексту и ты уже использовал древние теги <strong>
или <em>
, то у тебя <span>
— это последний бро, у которого по умолчанию нет предустановленных стилей, но ты можешь его немножко пересобрать и добавить стилей, чтобы он выглядел так, как ты хочешь.
Фишка в том, что в <span>
можно встраивать вообще всё что угодно. Внутри <span>
можно собирать целые блоки, списки и, по факту, он может работать не только с текстом: я такое встречал очень часто. <span>
можно встраивать друг в друга сколько угодно раз, чего не сделаешь, например, с тегом <p>
. Допустим, ты хочешь, чтобы текст на сайте появлялся по одной букве, то ты добавляешь каждую букву в отдельный <span>
, делаешь задержку и отдельно уже управляешь через JavaScript или CSS. <span>
— тег, без которого современные сайты практически не могут существовать.
советует Скопировано
🛠 <span>
— строковый элемент, поэтому по умолчанию у него нет высоты. Если нужна высота, то элементу стоит задать display
или display
, или подумать: «А не нужен ли там <div>
?»
советует Скопировано
🛠 Тег <span>
удобен, если нужно оформить другими стилями отдельное слово или словосочетание в тексте. Этот приём очень любят дизайнеры, чтобы акцентировать внимание на какой-то информации.
Например, выделим цветом важное для нас сообщение внутри заголовка на первом экране:
<header class="header"> <h1 class="header__title"> We are <span class="header__title-accent header__title-accent_color"> the best </span> <span class="header__title-accent"> company </span> </h1></header>
<header class="header"> <h1 class="header__title"> We are <span class="header__title-accent header__title-accent_color"> the best </span> <span class="header__title-accent"> company </span> </h1> </header>
.header { display: flex; justify-content: center; align-items: center; min-height: 480px; background: #18191c url("../images/background.svg") no-repeat center / cover; z-index: 0; color: #ffffff;}.header__title { max-width: 500px; color: #fff; font-family: "Roboto", sans-serif; font-size: 25px; text-align: center; text-transform: uppercase; font-weight: normal; line-height: 30px; letter-spacing: 1px;}/* задаём стили для текста, который нужно выделить */.header__title-accent { display: block; /* перенос на новую строку */ font-size: 55px; line-height: 58px; font-weight: bold;}/* цветовой акцент */.header__title-accent_color { color: #000000; background-color: #FF8630;}
.header { display: flex; justify-content: center; align-items: center; min-height: 480px; background: #18191c url("../images/background.svg") no-repeat center / cover; z-index: 0; color: #ffffff; } .header__title { max-width: 500px; color: #fff; font-family: "Roboto", sans-serif; font-size: 25px; text-align: center; text-transform: uppercase; font-weight: normal; line-height: 30px; letter-spacing: 1px; } /* задаём стили для текста, который нужно выделить */ .header__title-accent { display: block; /* перенос на новую строку */ font-size: 55px; line-height: 58px; font-weight: bold; } /* цветовой акцент */ .header__title-accent_color { color: #000000; background-color: #FF8630; }