
Создание треугольника в CSS основано на работе со свойством border. Если задать элементу нулевую ширину и высоту, а границы оформить разными цветами, получится фигура, в которой одна сторона будет выглядеть как треугольник. Такой приём часто используют для стрелок, указателей и декоративных элементов.
Наиболее распространённый способ – сделать прозрачными три стороны границы и оставить одну закрашенной. Например, свойство border-left и border-right задают прозрачными, border-bottom окрашивают, и в результате выходит равнобедренный треугольник, направленный вверх.
С помощью комбинации border-width можно управлять углом наклона и пропорциями фигуры. Если изменить толщину верхней или нижней границы, треугольник станет вытянутым. При этом использование абсолютного позиционирования или inline-block даёт возможность встроить его в любой макет.
Существует и альтернативный приём – работа с clip-path. Свойство позволяет формировать треугольники разных форм и направлений через указание координат точек. Такой способ даёт больше гибкости, особенно при адаптивной вёрстке.
Создание базового треугольника через border: минимальная разметка и стили
Для построения треугольника достаточно одного пустого элемента, например <div>. Содержимое в нем не требуется, так как форма формируется исключительно за счет свойств border.
Базовый подход заключается в том, что у блока задаются нулевые ширина и высота, а затем используются границы разных цветов и размеров. Оставив только одну сторону цветной, а остальные сделав прозрачными, можно получить треугольник нужного направления.
Пример минимальной разметки:
<div class=»triangle»></div>
Пример стилей:
.triangle {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid #333;
}
Такой код создаст равнобедренный треугольник, направленный вверх. Чтобы изменить направление, достаточно перенести цвет на другую сторону и сделать остальные границы прозрачными. Размер корректируется за счет толщины соответствующих границ.
Управление направлением: треугольник вверх, вниз, влево, вправо

Направление треугольника полностью зависит от того, какой стороне задать цвет, а остальные оставить прозрачными. Чтобы получить стрелку вверх, верхняя граница делается прозрачной, а нижняя окрашивается. Для стрелки вниз наоборот – окрашивается верхняя граница, а нижняя остаётся прозрачной.
Треугольник влево строится за счёт окрашенной правой границы и прозрачных остальных сторон. Для треугольника вправо окрашивается левая граница, а верхняя, нижняя и правая остаются прозрачными.
Размер фигуры определяется толщиной границ: чем больше значение border-width, тем крупнее будет треугольник. Цвет треугольника задаётся через свойство border-color, где один из четырёх параметров устанавливается в нужный цвет, а остальные в transparent.
Настройка размеров и пропорций: равнобедренный, острый, тупой
Для изменения формы треугольника в CSS используются разные значения border-width. Каждый из четырех бордеров определяет длину стороны воображаемого прямоугольника, из которого формируется фигура. Корректируя их, можно задавать пропорции и угол вершины.
Равнобедренный треугольник создается симметричными значениями для левых и правых границ. Например: border-left: 50px solid transparent; border-right: 50px solid transparent; и border-bottom: 100px solid #000;. Высота (нижняя граница) определяет длину оси симметрии, а боковые стороны задают равенство сторон.
Острый треугольник получается при уменьшении ширины основания относительно высоты. Чем уже значение border-left и border-right, тем меньше угол вершины. Например: border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 100px solid #000;.
Тупой треугольник строится обратным способом – ширина основания увеличивается, а высота уменьшается. В CSS это достигается большими значениями боковых границ при сравнительно малом значении нижней. Например: border-left: 80px solid transparent; border-right: 80px solid transparent; border-bottom: 40px solid #000;.
Корректировка углов полностью зависит от соотношения ширины боковых бордеров к высоте. Чем сильнее разница, тем выраженнее становится острота или тупота угла.
Стрелка для подсказки и поповера: ::before/::after и точное позиционирование

Для создания стрелки у подсказки или поповера удобно использовать псевдоэлементы ::before и ::after. Такой подход позволяет не добавлять лишние элементы в HTML-разметку и управлять положением стрелки через CSS.
Обычно применяют два псевдоэлемента: один формирует сам треугольник, второй служит фоном для корректного наложения на границы блока.
- Устанавливается
content: "";для псевдоэлемента. - Определяется абсолютное позиционирование (
position: absolute;), чтобы стрелка точно располагалась относительно контейнера. - Используются свойства
borderдля формирования треугольника. - Выравнивание задаётся через
top,bottom,left,rightв зависимости от стороны, где нужна стрелка.
Пример для стрелки снизу у блока:
.popover {
position: relative;
}
.popover::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -6px;
border-width: 6px;
border-style: solid;
border-color: #333 transparent transparent transparent;
}
Для обеспечения чёткой границы между блоком и стрелкой можно добавить второй псевдоэлемент с фоновым цветом, совпадающим с цветом обводки контейнера. Он размещается под основным треугольником и слегка увеличен по размеру.
- Сначала создаётся внешний псевдоэлемент для рамки.
- Затем внутренний – для заполнения цветом фона.
- Положение обоих синхронизируется одинаковыми значениями
left,topилиbottom.
Таким образом можно строить стрелки в любую сторону: для подсказок сверху – стрелка уходит вниз, для всплывающих окон слева – используется сдвиг вправо и поворот границ.
Цветовые варианты: одноцветные, с обводкой, прозрачные грани
Для создания одноцветного треугольника используется манипуляция свойствами border. Например, треугольник вверх формируется с помощью: border-left и border-right прозрачных, а border-bottom задаётся нужным цветом. Такой подход позволяет легко менять цвет, просто изменяя свойство border-bottom-color.
Треугольники с обводкой достигаются комбинацией прозрачного фона и двух слоёв: внешнего и внутреннего. Внешний слой задаёт границу треугольника, а внутренний – основной цвет. Это создаёт эффект рамки без использования SVG или псевдоэлементов. Для корректного отображения важно учитывать толщину border, чтобы она пропорционально увеличивала или уменьшала видимую область треугольника.
Прозрачные грани применяются для сложных форм или указателей, где требуется визуально разделять стороны. Используется комбинация прозрачных и цветных border-ов. Например, для равнобедренного треугольника с прозрачными боковыми гранями оставляют border-left и border-right прозрачными, а border-bottom окрашивают. Это позволяет интегрировать треугольник на фон любой текстуры без искажения цвета.
Дополнительно можно создавать градиентные треугольники через background-градиенты, обрезанные с помощью clip-path, что расширяет цветовые возможности без увеличения количества элементов. Такой метод эффективен при адаптивной верстке, поскольку легко масштабируется и сохраняет пропорции.
| Тип треугольника | Применение | Особенности |
|---|---|---|
| Одноцветный | Иконки, указатели | Лёгкая смена цвета через border |
| С обводкой | Поповеры, подсказки | Используется двойной слой для границы |
| Прозрачные грани | Фоны, сложные указатели | Позволяет интегрировать треугольник на любой фон |
Без границ: треугольник через linear-gradient, clip-path и конусный градиент
Треугольник с помощью linear-gradient создается путем наложения двух или более градиентов на один элемент. Для равнобедренного треугольника задают фон с угла 45° и 135°, используя прозрачные и цветные участки. Пример: background: linear-gradient(135deg, transparent 50%, #000 50%). Для острого или тупого угла корректируют градус наклона и соотношение прозрачных зон.
clip-path позволяет обрезать любой элемент по форме треугольника. С помощью polygon() задаются координаты вершин: clip-path: polygon(50% 0%, 0% 100%, 100% 100%) формирует равносторонний треугольник. Этот метод гибкий, позволяет изменять форму через проценты и поддерживает анимацию трансформаций без изменения структуры HTML.
Конусный градиент (conic-gradient) позволяет создать треугольник через угол закраски. Например: background: conic-gradient(#000 0deg 60deg, transparent 60deg 360deg) формирует сектор, визуально напоминающий треугольник. Угол градиента регулирует форму треугольника, что удобно для динамических интерфейсов и анимаций.
Все методы работают без использования границ и позволяют применять цветовые переходы, тени и прозрачность. clip-path оптимален для точных форм, linear-gradient – для визуальных эффектов на плоскости, а conic-gradient – для треугольников в круговых схемах.
Масштабирование и адаптивность: rem, currentColor, transform

Для адаптивных треугольников важно использовать относительные единицы измерения. Свойство border-width можно задавать в rem, чтобы размер треугольника зависел от корневого шрифта документа. Например, border-width: 2rem 1rem 0 1rem; создаст треугольник, который масштабируется вместе с размером текста.
С помощью currentColor можно задавать цвет границ треугольника, чтобы он автоматически повторял текущий цвет текста. Это удобно для кнопок, ссылок или динамических компонентов, где цвет может меняться через родительский элемент.
transform позволяет изменять размер и ориентацию треугольника без изменения исходных границ. Например, transform: scale(1.5) rotate(45deg); увеличит треугольник и повернёт его на 45 градусов, сохраняя пропорции. Для адаптивного дизайна лучше комбинировать scale с медиазапросами, чтобы корректировать размер на разных экранах.
Использование rem, currentColor и transform совместно позволяет создавать треугольники, которые динамически подстраиваются под размер шрифта, тему и ориентацию элементов, обеспечивая чистый и предсказуемый визуальный результат.
Вопрос-ответ:
Как создать треугольник через свойство border?
Для базового треугольника через border используется элемент с нулевой шириной и высотой. Например, если задать border-left и border-right прозрачными, а border-bottom цветным, получится треугольник, направленный вверх. Размер треугольника регулируется величиной border, а направление — комбинацией прозрачных и цветных сторон.
Можно ли сделать треугольник с плавным градиентом вместо однотонного цвета?
Да, вместо border можно использовать linear-gradient или conic-gradient в сочетании с clip-path. Linear-gradient позволяет создавать плавные переходы по одной оси, а conic-gradient — по кругу. Для точной формы треугольника удобно применять clip-path: polygon, где задаются координаты вершин. Такой подход позволяет менять цвет и градиент без дополнительных элементов.
Как управлять размером и пропорциями треугольника?
Размер треугольника через border регулируется величинами border-left/right и border-bottom/top. Для равнобедренного треугольника обычно задают одинаковые боковые границы. Острый или тупой угол можно получить, меняя соотношение высоты к ширине. При использовании clip-path размеры меняются через width, height и координаты вершин polygon, что дает полный контроль над пропорциями.
Какие методы позволяют сделать треугольник адаптивным для разных экранов?
Для адаптивности применяют относительные единицы: rem, em, % вместо px. Свойство transform: scale() позволяет изменять размеры без потери пропорций. Также полезно использовать currentColor для цвета, чтобы треугольник автоматически подстраивался под текстовый цвет родителя. Такой подход обеспечивает корректное отображение на разных устройствах и разрешениях экрана.