В веб‑дизайне часто приходится работать с элементами, которые «наклоняются» или «склоняются» в каком‑то направлении. Это может быть как стилистическим решением, так и ошибкой в коде. В этой статье мы разберём, что означает «наклонение» списков, как его создать при помощи CSS, какие проблемы может вызывать и как их исправить.
Что такое «наклон» в контексте списков?
В большинстве случаев под «наклоном» понимается применение CSS‑свойства transform: rotate к элементу списка (<ul> или <ol>) или к его элементам‑пунктам (<li>). Это деформирует визуальное представление списка, заставляя его выглядеть как будто повернутый влево/вправо, вверх/вниз.
Наклон может применяться:
- К самому списку:
<ul class="tilt"> - К каждому пункту списка:
<li><span>…</span></li> - К иконкам/ссылкам внутри списка.
Если речь идёт о «двух списках», значит, в пределах одного блока на странице находятся два списка, которые одновременно получили одинаковое вращение.
Как создать наклон списка?
Ниже приведён простой пример, как наклонить список на 15 градусов к правому краю:
/* Стили для списка /
ul.tilt {
list-style: none; / убираем стандартные маркеры /
padding: 0;
margin: 0;
transform: rotate(15deg); / наклон /
transform-origin: left top; / точка вращения /
}
/ Наклоняем каждый пункт по отдельности /
ul.tilt li {
transform: rotate(-15deg); / компенсируем наклон пункта */
margin-bottom: 10px;
}
В результате список выглядит наклоненным, но отдельные пункты остаются выровненными по горизонтали.
Вариант 1 – Наклон списка целиком
ul.tilt {
transform: rotate(10deg);
}
Вариант 2 – Наклон только пунктов
ul.tilt li {
transform: rotate(10deg);
}
Вариант 3 – Смешанный эффект
ul.tilt {
transform: rotate(10deg);
}
ul.tilt li {
transform: rotate(-10deg);
}
Почему это может быть проблемой?
Наклон списка может вызвать несколько проблем:
- Проблемы с читаемостью: Тексты, смещённые под углом, могут быть трудны для чтения, особенно при небольших размерах шрифта.
- Адаптивность: На мобильных устройствах и при изменении размера окна браузера поворот может обрезать элементы списка.
- Семантика и доступность: Скрин‑ридеры могут не корректно обрабатывать скрученные элементы, что ухудшает доступность.
- Переступление границ: Если список располагается рядом с другими элементами, вращение может вызвать перекрытие.
Как исправить «наклон»?
Если наклон – это ошибка, то просто уберите transform:
ul.tilt {
transform: none;
}
Если же вы хотите оставить наклон, но улучшить восприятие:
- Добавьте
transform-originдля контроля точки вращения. - Убедитесь, что
overflow: hiddenне обрезает контент. - Добавьте
transitionдля плавного появления при наведении. - Проверьте, что
aria-labelиrole="list"присутствуют, чтобы скрин‑ридеры правильно интерпретировали список.
Практический пример: два наклонных списка
<head>
<style>
.container {
display: flex;
gap: 40px;
}
.tilt {
transform: rotate(12deg);
transform-origin: left top;
list-style: none;
padding: 0;
margin: 0;
}
.tilt li {
transform: rotate(-12deg);
margin-bottom: 6px;
} </style>
</head>
<body>
<div class=»container»>
<ul class=»tilt»>
<li>Первый пункт списка 1</li>
<li>Второй пункт списка 1</li>
<li>Третий пункт списка 1</li>
</ul>
<ul class=»tilt»>
<li>Первый пункт списка 2</li>
<li>Второй пункт списка 2</li>
<li>Третий пункт списка 2</li>
</ul>
</div>
</body>
Проверка доступности
После того как вы наклонили списки, важно проверить, как они работают с вспомогательными технологиями. Используйте:
- Chrome DevTools – Accessibility Panel: проверяет контраст, размер шрифта и семантику.
- Плагин axe Accessibility Scanner для автоматической проверки.
- Скрин‑ридер NVDA или VoiceOver для проверки звукового восприятия.
Наклон списка – это не просто стилистический приём, а элемент, который может влиять на читаемость, адаптивность и доступность вашего сайта. Если вы видите, что «обе списки наклонились вперёд», скорее всего, в коде применён transform: rotate к элементу списка. Проверьте:
- Наличие
transformв CSS. - Корректность
transform-origin. - Влияние на чтение и доступность.
Если наклон – это желаемый эффект, убедитесь, что он реализован корректно и не мешает пользователям. Если это непреднамеренный баг, просто удалите свойство transform и список вернётся к обычному виду.
Надеюсь, эта статья поможет вам быстро разобраться, почему «обе списки наклонились вперёд» и как это исправить.