
Отступы списков в браузерах задаются встроенными стилями пользователя: чаще всего это padding-left около 40px или эквивалент 1–1.5em. Для контролируемого результата сначала сбросьте значения: например, в CSS установить ul, ol { margin: 0; padding: 0; }, а затем задать нужный отступ для конкретного класса. Это устраняет разницу между браузерами и мобильными рендерерами.
Чтобы получить обычный отступ с маркером вне текста используйте правило вида ul.my-list { padding-left: 24px; list-style-position: outside; }. Для более компактного вида задайте padding-left в пикселях (например, 16–24px) или в относительных единицах (1–1.5em) – относительные единицы лучше сохраняют пропорции на разных размерах шрифта.
Если нужно сделать «висячий» отступ, когда маркер остаётся слева, а текст переносится со смещением, примените к элементам <li> сочетание отрицательного text-indent и положительного padding-left, например: li { padding-left: 1.5em; text-indent: -1.5em; }. Альтернативно можно использовать margin-left на li для управления внешним отступом элементов списка.
Практические рекомендации: 1) сбрасывайте пользовательские отступы и стилизуйте конкретный класс; 2) используйте относительные единицы для адаптивности; 3) не убирайте маркеры полностью без замены на доступную альтернативу (ARIA/визуальные маркеры); 4) тестируйте в нескольких браузерах и на мобильных разрешениях. Для повторного использования заведите CSS-переменную, например —list-indent, и применяйте её к наборам списков.
Отступ маркера и содержимого: padding и text-indent

Для управления расстоянием между маркером списка и текстом используется комбинация CSS-свойств. Самый распространённый приём – добавление отступа через padding-left. Это свойство задаёт пространство внутри элемента списка, смещая текст вместе с маркером.
Если требуется сохранить положение маркера, но изменить выравнивание текста, применяется text-indent. Оно позволяет сдвинуть первую строку абзаца вправо или влево, не влияя на положение самого маркера.
Например, при использовании padding-left: 20px; весь блок содержимого сдвигается от границы контейнера, включая маркер. В то время как text-indent: -10px; уменьшает расстояние между маркером и началом текста, создавая плотное расположение без изменения общей структуры списка.
Комбинирование этих свойств помогает точно регулировать внешний вид: padding управляет общим сдвигом блока, а text-indent отвечает за положение первой строки относительно маркера.
Регулировка расстояния между маркером и текстом: list-style-position

Свойство list-style-position определяет, где будет располагаться маркер списка относительно содержимого элемента. Этот параметр напрямую влияет на то, насколько близко текст подходит к символу маркера.
Доступны два значения:
outside |
Маркер размещается за пределами блока списка, а текст выравнивается по левому краю. По умолчанию используется именно этот вариант. |
inside |
Маркер располагается внутри текстового блока. При переносе строк они выравниваются по позиции маркера, что сокращает расстояние между ним и содержимым. |
Если необходимо увеличить визуальное расстояние между маркером и содержимым, обычно используют outside в сочетании с дополнительным padding-left. Для уплотнённого размещения лучше подходит inside, где маркер становится частью текстового блока.
Пример кода:
ul {
list-style-position: inside;
}
Таким образом можно контролировать не только положение маркера, но и читаемость текста при работе со сложными многострочными пунктами списка.
Отступы для вложенных списков через margin и padding

При создании многоуровневых списков браузеры автоматически добавляют отступы для вложенных элементов. Однако их величина зависит от стилей по умолчанию и часто требует корректировки. Для управления расстоянием можно использовать свойства margin и padding, задавая их непосредственно для тегов ul или ol внутри родительского списка.
margin регулирует внешний отступ всего блока списка. Установка значения слева (margin-left) позволяет контролировать смещение вложенного списка относительно родительского элемента. Например, уменьшив стандартные значения, можно сократить глубину вложенности и сделать структуру компактнее.
padding отвечает за внутренний отступ, то есть расстояние между границей контейнера списка и его содержимым. Изменяя padding-left, можно управлять положением маркеров и текста. Если требуется выровнять вложенные списки по единой вертикали, внутренний отступ задаётся одинаковым для всех уровней.
Комбинация margin-left и padding-left даёт точный контроль: первый задаёт смещение всего блока списка, а второй – расположение маркеров и текста внутри него. Такой подход позволяет добиться аккуратного отображения вложенных уровней и сохранить читаемость структуры.
Индивидуальные отступы для пунктов списка с помощью CSS-селекторов

Чтобы задать различное расстояние между элементами списка, удобно использовать CSS-селекторы, которые обращаются к конкретным пунктам или группам элементов. Это позволяет контролировать внешний вид отдельных строк без изменения структуры HTML.
Пример использования псевдоклассов:
ul li:first-child {
margin-bottom: 10px;
}
ul li:last-child {
margin-top: 15px;
}
Таким образом первый и последний элементы будут выделяться собственными отступами.
Для выбора определённых пунктов можно применять селектор nth-child():
ol li:nth-child(2) {
padding-left: 25px;
}
ol li:nth-child(4) {
margin-top: 12px;
}
В этом случае второй элемент списка получит дополнительный отступ слева, а четвёртый – пространство сверху.
Если требуется назначить разные значения сразу нескольким элементам, используют составные селекторы:
ul li:nth-child(odd) {
margin-bottom: 8px;
}
ul li:nth-child(even) {
margin-bottom: 15px;
}
Такой приём даёт возможность варьировать отступы для нечётных и чётных пунктов, создавая более выразительное оформление списка.
Сброс стандартных отступов браузера и настройка с нуля

Браузеры по умолчанию применяют собственные отступы к спискам <ul> и <ol>, обычно это margin и padding. Для точного контроля над внешним видом списков их необходимо сбросить.
Чтобы убрать стандартные отступы, применяют CSS-свойства: margin: 0; и padding: 0;. Например, для всех ненумерованных списков: ul { margin: 0; padding: 0; }. Для нумерованных списков аналогично: ol { margin: 0; padding: 0; }.
После сброса отступов можно задать индивидуальные значения с нуля. Свойство padding-left определяет расстояние текста от маркера, а margin регулирует отступы между списком и другими элементами. Например: ul { padding-left: 20px; margin-top: 10px; } создаст равномерный отступ и визуально отделит список от соседних блоков.
Важно учитывать, что сброс стандартных отступов обеспечивает одинаковое отображение на всех браузерах и упрощает дальнейшую кастомизацию списков. Это особенно полезно для вложенных списков, где без сброса накопленные отступы создают неконтролируемую структуру.
Для полного контроля над маркерами можно дополнительно использовать list-style-type и list-style-position, но базовое выравнивание и расстояния формируются через корректный сброс margin и padding.
Отступы списков для мобильных и десктопных экранов (media queries)

Для корректного отображения списков на разных устройствах используют медиазапросы. Они позволяют задавать индивидуальные значения отступов для мобильных и десктопных экранов. Например, на экранах шириной до 600px удобно уменьшить внешние отступы, чтобы список помещался в ограниченное пространство.
Пример CSS-медиазапроса для мобильных устройств: @media (max-width: 600px) { ul { padding-left: 15px; } }. Для десктопов с шириной экрана от 1024px можно увеличить отступы: @media (min-width: 1024px) { ul { padding-left: 40px; } }. Это обеспечивает комфортное восприятие структуры списка на разных экранах.
Кроме внешнего отступа (padding), важно контролировать внутренний интервал между пунктами списка с помощью свойства margin-bottom. Для мобильных устройств достаточно 5–8px, для десктопных экранов – 10–15px, чтобы визуально разграничить элементы.
Для вложенных списков рекомендуется использовать пропорциональные значения отступов, увеличивая их на 50–70% относительно родительского списка. Такой подход сохраняет структуру и читаемость на любых устройствах.
Использование медиазапросов в комбинации с padding и margin позволяет адаптировать списки к экрану, избегая горизонтальной прокрутки на мобильных и сохраняя удобство чтения на больших экранах.
Вопрос-ответ:
Как изменить расстояние между маркером и текстом в списке?
Для этого используется свойство CSS list-style-position. Значение inside размещает маркер внутри блока списка, уменьшая отступ, а outside оставляет маркер снаружи, создавая стандартное расстояние. Дополнительно можно настроить точный отступ с помощью padding-left для
- или
.
Можно ли задавать разные отступы для отдельных пунктов списка?
Да, это делается через селекторы CSS. Например, li:first-child или li:nth-child(2) позволяют назначать уникальные margin или padding для конкретных элементов списка. Такой подход помогает точно выровнять текст в сложных списках с разной длиной пунктов.
Как сделать одинаковые отступы для вложенных списков?
Для вложенных списков можно использовать каскадные правила CSS. Например, ul ul { padding-left: 20px; } задаёт одинаковый отступ для всех списков внутри основного списка. Аналогично можно применять margin-left для контроля визуальной иерархии без смещения маркера.
Почему маркеры списка иногда смещаются после сброса стилей браузера?
Браузеры по умолчанию задают свои margin и padding для списков. При обнулении стилей (margin: 0; padding: 0;) маркеры могут сместиться к левому краю. Чтобы сохранить привычное выравнивание, нужно вручную назначить padding-left или margin-left для ul и ol.
Можно ли использовать отрицательные отступы для сдвига маркера ближе к тексту?
Да, с помощью text-indent и отрицательного значения margin-left можно приблизить маркер к тексту. Например, li { text-indent: -10px; } сдвинет первую строку текста ближе к маркеру, сохраняя общий вид списка аккуратным. Нужно контролировать, чтобы текст не выходил за границы контейнера.
Как изменить отступы для отдельных пунктов списка в HTML?
Чтобы задать индивидуальные отступы для конкретных пунктов списка, используют CSS-селекторы. Например, можно применить селектор по классу или идентификатору к элементу <li> и задать свойства margin-left или padding-left. Пример: <li class="special">Пункт</li> и в CSS .special { padding-left: 30px; }. Такой способ позволяет изменять расстояние от маркера до текста только у выбранных элементов без изменения всего списка.
Чем отличается использование margin и padding для отступов в списках?
Свойство margin увеличивает пространство снаружи элемента, то есть отодвигает весь пункт списка относительно других элементов. Padding изменяет внутренний отступ, отодвигая текст относительно маркера внутри самого <li>. Если требуется увеличить расстояние между маркером и текстом, используют padding-left. Если нужно создать дополнительное пространство между пунктами списка, используют margin-bottom для отдельных элементов или всего списка.