CSS set li indent
Поиск в googling и переполнение стека не возвращали никаких результатов, которые я мог бы распознать, поэтому простите меня, если это было задано раньше...
У меня выпадающее главное меню, которое использует списки в качестве основы. Проблема в том, что списки очень широкие, и при расширении они не отступают достаточно далеко. Итак, это моя проблема! Как сделать сумму отступа в списках больше с помощью CSS?
Ответы
Ответ 1
для отступов выпадающего меню ul
, используйте
/* Main Level */
ul{
margin-left:10px;
}
/* Second Level */
ul ul{
margin-left:15px;
}
/* Third Level */
ul ul ul{
margin-left:20px;
}
/* and so on... */
Вы можете отложить li
и (если применимо) a
(или любые элементы контента, которые у вас есть), каждый из которых имеет разные эффекты. Вы также можете использовать padding-left
вместо margin-left
, снова в зависимости от эффекта, который вы хотите.
Обновить
По умолчанию многие браузеры используют padding-left
для установки начального отступа. Если вы хотите избавиться от этого, установите padding-left: 0px;
Тем не менее, как margin-left
и padding-left
настройки влияют на отступы списков по-разному. В частности: margin-left
влияет на отступ на внешней границе элемента, тогда как padding-left
влияет на интервал внутри границы элемента. (Узнайте больше о модели CSS-box здесь)
Установка padding-left: 0;
оставляет иконки li bullet, висящие над краем границы элемента (по крайней мере, в Chrome), что может быть или не быть тем, что вы хотите.
Примеры padding-left vs margin-left и как они могут работать вместе на ul: https://jsfiddle.net/daCrosby/bb7kj8cr/1/
Ответ 2
padding-left
- это то, что контролирует отступ ul
не margin-left
.
Compare: Здесь настройка padding-left
на 0px
, заметите, что все отступы исчезают.
ul {
padding-left: 0px;
}
<ul>
<li>section a
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
</ul>
<ul>
<li>section b
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>
</li>
</ul>
Ответ 3
Также попробуйте:
ul {
list-style-position: inside;
}
Ответ 4
li{
margin-left:50px;
}
или замените 50px тем, что вы хотите.
Ответ 5
Я обнаружил, что делать это на двух относительно простых шагах, казалось, работает очень хорошо. Первое определение css для ul устанавливает базовый отступ, который вы хотите для списка в целом. Второе определение устанавливает значение отступа для каждого вложенного элемента списка внутри него. В моем случае они одинаковы, но вы, очевидно, можете выбрать то, что хотите.
ul {
margin-left: 1.5em;
}
ul > ul {
margin-left: 1.5em;
}