Содержание статьи

Символ плюс широко используется в интерфейсах для обозначения добавления элементов, раскрытия меню или увеличения значений. В CSS его можно создать без изображений, используя свойства размеров, позиционирования и псевдоэлементы. Такой подход сокращает загрузку страницы и упрощает масштабирование.
Самый простой способ – использовать блок с фиксированными размерами и псевдоэлементы ::before и ::after, которые формируют вертикальную и горизонтальную линии. При этом важно задавать точную ширину, высоту и фон для линий, чтобы они пересекались идеально в центре.
Альтернативный метод – границы блока. С помощью border можно создать линии плюса, контролируя толщину и цвет. Такой способ удобен для адаптивного дизайна, так как размеры линий автоматически масштабируются вместе с блоком.
При создании плюса важно учитывать его позиционирование внутри контейнера. Свойства position, top, left и transform позволяют точно выровнять символ по центру, независимо от размера родительского элемента.
CSS также предоставляет возможность добавлять анимацию: изменение цвета, вращение или плавное появление плюса. Это делает интерфейс более динамичным и информативным без использования JavaScript или внешних графических файлов.
Рисование плюса с использованием псевдоэлементов ::before и ::after

Для создания плюса с помощью CSS создайте контейнер с фиксированными размерами, например 50px на 50px, и задайте ему position: relative. Псевдоэлементы ::before и ::after будут представлять горизонтальную и вертикальную линии символа.
Задайте псевдоэлементам content: », position: absolute и фон через background-color. Для горизонтальной линии установите width равной 100% контейнера и небольшую height, например 5px. Для вертикальной линии поменяйте размеры: height 100%, width 5px.
Чтобы линии пересекались по центру блока, используйте top: 50% и left: 50% вместе с transform: translate(-50%, -50%) для обоих псевдоэлементов. Этот подход гарантирует точное выравнивание независимо от размеров контейнера.
Для изменения толщины или цвета плюса достаточно корректировать width, height и background-color псевдоэлементов. Такая конструкция масштабируется при изменении размеров блока без потери пропорций и остается полностью адаптивной.
Создание плюса через границы блока и размеры элементов
Символ плюс можно формировать с помощью блока и его границ. Создайте контейнер с фиксированными размерами, например 60px на 60px, и задайте ему position: relative. Горизонтальная и вертикальная линии создаются через отдельные внутренние элементы с контролем ширины, высоты и границ.
Пример структуры в виде таблицы позволяет визуально планировать размеры линий:
| Элемент | Ширина | Высота | Граница |
|---|---|---|---|
| Горизонтальная линия | 100% | 6px | background-color: #000 |
| Вертикальная линия | 6px | 100% | background-color: #000 |
Чтобы линии пересекались по центру контейнера, используйте position: absolute для каждого внутреннего элемента с top: 50% и left: 50%, а затем сдвиг через transform: translate(-50%, -50%). Этот метод сохраняет точное перекрытие и масштабируется при изменении размеров блока.
Изменение толщины линий и цвета выполняется через свойства width, height и background-color внутренних элементов, что обеспечивает простое редактирование внешнего вида плюса без изменения структуры HTML.
Использование CSS Grid для формирования знака плюс

CSS Grid позволяет создавать символ плюс с точным контролем позиций линий без дополнительных псевдоэлементов. Для этого контейнер задается как сетка из трёх строк и трёх столбцов:
- Центральная строка и столбец формируют пересечение горизонтальной и вертикальной линии.
- Верхняя и нижняя строки остаются пустыми, создавая пространство вокруг плюса.
- Левая и правая колонки также пусты, обеспечивая визуальное выравнивание.
Пример структуры:
- Создайте контейнер с display: grid и grid-template-rows: 1fr auto 1fr.
- Задайте grid-template-columns: 1fr auto 1fr для горизонтального выравнивания.
- Горизонтальная линия помещается в центральную строку с grid-column: 1 / 4.
- Вертикальная линия размещается в центральной колонке с grid-row: 1 / 4.
Через width, height и background-color линий можно изменять толщину и цвет плюса. Grid автоматически сохраняет центрирование и пропорции при масштабировании контейнера, что упрощает адаптивный дизайн.
Вертикальное и горизонтальное выравнивание плюса внутри контейнера

Для точного выравнивания плюса в контейнере можно использовать сочетание position: relative у родителя и position: absolute у линий плюса. Центральная точка пересечения задается с помощью top: 50% и left: 50%, а смещение для корректного центрирования выполняется через transform: translate(-50%, -50%).
Для более сложных интерфейсов удобен Flexbox. Контейнер получает display: flex, justify-content: center для горизонтального выравнивания и align-items: center для вертикального. Такой подход работает независимо от размеров контейнера и линий плюса.
При адаптивном дизайне важно проверять, чтобы ширина и высота линий оставались пропорциональными. Для этого задают размеры в относительных единицах, например em или %, что сохраняет визуальное центрирование при изменении размеров контейнера.
Дополнительно, при использовании Grid можно поместить горизонтальную и вертикальную линии в центральные ячейки сетки, обеспечивая автоматическое выравнивание без дополнительных трансформаций. Такой метод упрощает работу с плюсом в сложных макетах.
Добавление цвета и толщины линий плюса через CSS

Толщина линий плюса регулируется свойствами width и height для горизонтальной и вертикальной линии. Например, для горизонтальной линии height: 6px задает толщину, а для вертикальной линии width: 6px. Эти значения можно изменять независимо для создания более тонкого или широкого плюса.
Цвет линий задается через background-color. Можно использовать как стандартные цветовые значения (#000, red), так и CSS-переменные для удобного изменения темы интерфейса. Например, background-color: var(—plus-color) позволит централизованно менять оттенок плюса на всей странице.
Для динамического изменения внешнего вида плюса можно применять CSS-переходы: transition: background-color 0.3s, width 0.3s, height 0.3s. Это создаёт плавное изменение цвета и толщины при наведении или интерактивных действиях.
При адаптивных интерфейсах рекомендуется задавать толщину линий в относительных единицах, например em или %, чтобы символ масштабировался вместе с контейнером без нарушения пропорций.
Анимация появления и трансформации плюса с CSS
Для анимации плюса используют свойства transform и opacity. Простейший эффект – плавное появление: задайте начальное состояние opacity: 0 и transform: scale(0.5), а затем с помощью transition: opacity 0.4s, transform 0.4s увеличьте opacity до 1 и scale до 1.
Для вращения плюса применяют transform: rotate(). Например, transform: rotate(45deg) для псевдоэлементов создаёт эффект динамического изменения ориентации при наведении или клике. В сочетании с transition движение становится плавным.
Можно анимировать отдельные линии плюса: горизонтальная и вертикальная линии появляются с разной задержкой через transition-delay, создавая эффект поочерёдного формирования символа. Это особенно полезно для интерактивных кнопок.
Для цикличных анимаций используют @keyframes. Например, изменение цвета или масштабирование линий повторяется непрерывно, управляя animation-duration и animation-iteration-count. Такой подход позволяет добавить визуальный акцент без использования JavaScript.
Вопрос-ответ:
Как создать символ плюс с помощью только CSS без изображений?
Символ плюс можно формировать с использованием одного блока и псевдоэлементов ::before и ::after. Горизонтальная и вертикальная линии создаются через размеры и фон псевдоэлементов. Для точного центрирования применяется position: absolute и transform: translate(-50%, -50%), что позволяет линии пересекаться ровно в центре блока.
Можно ли регулировать толщину и цвет линий плюса через CSS?
Да, толщину линий задают свойствами width и height для горизонтальной и вертикальной линии. Цвет линий управляется через background-color. При адаптивном дизайне рекомендуется использовать относительные единицы, например % или em, чтобы символ масштабировался вместе с контейнером.
Как выровнять символ плюс по центру контейнера?
Для центрирования применяют два подхода. Через position: relative у контейнера и position: absolute у линий с top: 50%, left: 50% и transform: translate(-50%, -50%). Альтернативно, Flexbox с justify-content: center и align-items: center также обеспечивает точное горизонтальное и вертикальное выравнивание.
Можно ли добавить анимацию плюса с помощью CSS?
Да, анимацию плюса создают через transition и @keyframes. Например, плавное появление достигается изменением opacity и transform: scale(). Для вращения или последовательного появления линий используются rotate() и transition-delay, что позволяет создавать динамичные эффекты без JavaScript.
