
Поворот текста на веб-странице позволяет создавать нестандартные элементы интерфейса, выделять заголовки или оптимизировать отображение информации в ограниченном пространстве. В CSS для этого применяется свойство transform с функцией rotate(), которая задаёт угол поворота в градусах. Например, transform: rotate(90deg); повернёт текст на 90 градусов по часовой стрелке.
Чтобы повернуть текст вокруг своей оси без искажения макета, необходимо учитывать точку трансформации. Она задаётся через свойство transform-origin. По умолчанию точка привязки располагается в центре элемента, но её можно сместить, например, на верхний левый угол с помощью значения transform-origin: top left;.
Кроме поворота, важно следить за влиянием изменений на поток документа. Элементы с трансформацией не всегда корректно взаимодействуют с соседними блоками. В случаях, когда требуется сохранить структуру, текст помещают в контейнер с заданными размерами и управляют переполнением через свойства overflow и white-space.
Для вертикального текста, помимо rotate(), можно использовать свойство writing-mode. Значение writing-mode: vertical-rl; автоматически размещает символы вертикально без необходимости явного поворота, что особенно полезно для адаптивной верстки и мультиязычных сайтов.
Хочешь, я также подготовлю примеры кода для разных вариантов поворота текста?
Как повернуть текст на фиксированный угол с помощью transform: rotate()

Свойство transform: rotate() позволяет задать точное значение угла поворота элемента относительно его центра. Значение указывается в градусах с использованием единицы deg. Положительное значение вращает текст по часовой стрелке, отрицательное – против.
- Чтобы повернуть текст на 45 градусов, примените правило:
p { transform: rotate(45deg); } - Для поворота в другую сторону, например на -30 градусов:
span { transform: rotate(-30deg); } - Поворот на 90 градусов делает текст вертикальным:
div { transform: rotate(90deg); }
Важно учитывать, что после применения rotate() изменяется визуальное положение элемента, но его исходные размеры в потоке документа сохраняются. Для правильного выравнивания используйте дополнительные стили, например display: inline-block или position: absolute.
Если требуется совместить поворот с другими трансформациями, используйте одну запись через пробел, например:
h1 { transform: rotate(45deg) scale(1.2); }
Для сохранения читаемости текста после поворота следите за размерами шрифта, интервалами и свободным пространством вокруг элемента.
Как изменить направление текста вертикально с помощью writing-mode
Свойство writing-mode в CSS позволяет управлять направлением текстового потока без необходимости использовать трансформации или повороты. Для вертикального отображения текста используется значение vertical-rl или vertical-lr.
Пример использования:
p {
writing-mode: vertical-rl;
}
Значение vertical-rl устанавливает направление текста сверху вниз, начиная справа налево. Если нужно, чтобы текст шёл сверху вниз слева направо, используется vertical-lr.
Свойство writing-mode особенно полезно для создания интерфейсов на языках, традиционно использующих вертикальное письмо, таких как японский или китайский. Также оно подходит для оформления декоративных заголовков и боковых меню.
При использовании writing-mode стоит учитывать, что ширина и высота блока остаются в системе координат обычного потока. Для контроля внешнего вида дополнительно применяют свойства text-orientation и white-space.
Чтобы все символы были выровнены вертикально в нормальном положении, добавляют:
p {
writing-mode: vertical-rl;
text-orientation: upright;
}
Свойство text-orientation регулирует ориентацию символов внутри вертикального текста. Значение upright заставляет все буквы оставаться прямыми, без поворота вдоль линии письма.
Поддержка свойства writing-mode охватывает все современные браузеры. Для старых версий Internet Explorer применяют значение tb-rl как устаревший вариант, но его использование не рекомендуется для новых проектов.
Как комбинировать transform и writing-mode для сложных поворотов текста
Сочетание свойств transform и writing-mode позволяет управлять направлением текста и его поворотом независимо друг от друга. Это удобно, когда требуется повернуть текст на произвольный угол, сохраняя вертикальное или горизонтальное начертание.
Чтобы получить вертикальный текст с дополнительным поворотом, установите writing-mode в значение vertical-rl или vertical-lr, а затем примените transform: rotate() для задания точного угла. Например, для вертикального текста, повернутого на 90 градусов влево:
p { writing-mode: vertical-rl; transform: rotate(-90deg); }
Важно: transform вращает весь элемент, включая блокировку текста и его начертание. writing-mode меняет только направление потока символов, не влияя на их форму и угол.
Чтобы текст читался вертикально, но при этом шёл снизу вверх с наклоном, используйте writing-mode: vertical-lr вместе с transform: rotate(180deg). Это перевернет направление начертания, сохраняя вертикальное расположение строк.
Если требуется сложное комбинирование, например, текст по диагонали с вертикальной разбивкой строк, используйте writing-mode для базовой структуры, а затем точно настройте угол через transform:
div { writing-mode: vertical-rl; transform: rotate(45deg); }
Рекомендация: для точного позиционирования текста после комбинирования поворота и изменения направления часто требуется использовать transform-origin. Например:
div { writing-mode: vertical-rl; transform: rotate(45deg); transform-origin: top left; }
Такой подход позволяет избежать смещения текста за пределы родительского контейнера.
Как повернуть отдельные буквы или слова внутри строки

Чтобы повернуть отдельные символы или слова, их нужно обернуть в тег, например, , и применить к нему свойство CSS transform: rotate(). Угол поворота задаётся в градусах.
Пример: <p>Это <span style="display: inline-block; transform: rotate(20deg);">пример</span> текста.</p>
Обязательно использовать display: inline-block, иначе свойство transform не сработает для встроенных элементов.
Для поворота нескольких букв каждую букву оборачивают отдельно: <span>П</span><span>р</span><span>и</span><span>м</span><span>е</span>р. Затем к каждому span можно задать индивидуальный угол или общий класс.
Пример с классом: .rotate-letter { display: inline-block; transform: rotate(-15deg); }.
Если нужно добиться сложных эффектов, например, плавного поворота при наведении, можно добавить анимацию: transition: transform 0.3s; к нужному элементу.
При большом количестве элементов стоит использовать генерацию HTML через JavaScript, чтобы избежать ручной верстки каждой буквы.
Как настроить центр вращения текста с помощью transform-origin

Свойство transform-origin задаёт точку, вокруг которой происходит вращение элемента при использовании transform: rotate(). По умолчанию центр вращения расположен в середине элемента (50% 50%).
Чтобы изменить центр вращения текста, необходимо указать иные координаты. Например, для вращения вокруг левого края используется transform-origin: 0% 50%;, а для правого края – transform-origin: 100% 50%;.
Значения transform-origin могут быть заданы в процентах, пикселях или ключевыми словами (top, bottom, left, right, center). Например, чтобы повернуть текст относительно верхнего левого угла, применяется transform-origin: top left;.
Если нужно сместить точку вращения внутрь текста, можно использовать числовые значения: transform-origin: 30px 20px; задаст ось вращения на 30 пикселей вправо и 20 пикселей вниз от верхнего левого угла.
При сочетании transform-origin с rotate() можно добиться нестандартных эффектов анимации и расположения текста. Важно помнить, что изменение точки вращения влияет не только на само вращение, но и на последующее позиционирование элемента.
Как адаптировать повёрнутый текст для мобильных устройств через media queries

При адаптации повёрнутого текста на мобильных устройствах важно учитывать размер экрана и ориентацию. Для этого используются media queries, которые позволяют применять разные стили в зависимости от характеристик устройства.
Базовый пример поворота текста с адаптацией:
/* Поворот текста для десктопа */
.rotated-text {
transform: rotate(-90deg);
transform-origin: left top;
white-space: nowrap;
}
/* Адаптация для экранов шириной до 600px */
@media (max-width: 600px) {
.rotated-text {
transform: rotate(0deg);
transform-origin: initial;
white-space: normal;
text-align: center;
}
}
Рекомендации при использовании media queries для повёрнутого текста:
- Устанавливайте
transform-originвручную, чтобы контролировать точку поворота на разных устройствах. - Меняйте
white-spaceнаnormalдля предотвращения обрезания текста на узких экранах. - Добавляйте
text-align: centerдля улучшения читаемости на небольших дисплеях. - Используйте несколько порогов в media queries, например, 480px, 768px, 1024px, чтобы детально настраивать поведение текста.
- Проверяйте адаптацию в разных режимах: портретном и ландшафтном.
Пример настройки разных порогов:
@media (max-width: 480px) {
.rotated-text {
font-size: 14px;
}
}
@media (min-width: 481px) and (max-width: 768px) {
.rotated-text {
font-size: 16px;
}
}
@media (min-width: 769px) {
.rotated-text {
font-size: 18px;
}
}
Если текст остаётся повёрнутым даже на мобильных устройствах, увеличивайте межстрочный интервал через line-height и добавляйте внутренние отступы через padding для улучшения восприятия.
Хотите, я ещё дополнительно покажу примеры с вертикальной адаптивной навигацией?
Вопрос-ответ:
Будет ли работать поворот текста во всех браузерах одинаково?
Свойство `transform: rotate` поддерживается большинством современных браузеров, включая Chrome, Firefox, Edge и Safari. Однако в некоторых старых версиях браузеров могут возникать отличия в обработке трансформаций. Для более уверенной поддержки рекомендуется проверить работу на нужных устройствах или добавить в CSS префиксы для старых браузеров, например `-webkit-transform`.
