Подтвердить что ты не робот

Почему стиль списка исчезает при отображении: блок добавляется к элементу списка в списке (<ul> или <ol>)?

Это, похоже, справедливо и для display: inline; и display: inline-block;.

Вот что я имею в виду:

ul li {
  display: block;
  /* Or display: inline; */
  /* Or display: inline-block; */
}

<ul>
  <li>list item1</li>
  <li>list item3</li>
  <li>list item3</li>
</ul>

И со стилем списка я имею в виду фактические "пули" или "числа" (когда используется <ol>)

4b9b3361

Ответ 1

Это потому, что обычно display устанавливается в list-item для <li> элементов. См. Спецификацию W3C CSS3: http://www.w3.org/TR/css3-lists/#declaring-a-list-item.

Чтобы объявить элемент списка, свойство отображения должно быть установлено в 'list-item.

Обратите внимание, что вы можете дать произвольным элементам HTML одинаковое поведение; установите display: list-item на a <div>, например.

Ответ 2

Обновленное решение состоит в использовании :before и content.

См. этот JSfiddle для рабочего примера. http://jsfiddle.net/t72h3/

ul li {
  display: inline-block;
}

ul li:before {
  content: "• ";
}

<ul>
  <li>list item1</li>
  <li>list item3</li>
  <li>list item3</li>
</ul>

Ответ 3

Ответ Martin верен, но не дает решения, и Pappy применим только в том случае, если вы хотите получить патроны или легко получить доступ к идентификатору li. В моем случае мне нужно иметь ol с upper-alpha, чтобы это было невозможно.

Самый короткий способ для нас заключался в том, чтобы установить свойство inline (inline, inline-block, inline-flex), а также vertical-align: top для непосредственного дочернего элемента li:

ol {
  list-style: upper-alpha;
  
  > li {
    display: block;
  }
}

.list-item-content {
  display: inline-block; // any inline property will work
  vertical-align: top;
}
<ol>
  <li>
    <div class="list-item-content">Some text</div>
  </li>
</ol>

Ответ 4

Способ получения эффекта:

<ol> <li> <a href="mylink">desc</a> </li> </ol>

CSS

li {list-style-position: inside; display: inline-block;} /* or block */ li a {display: list-item; padding: 10px 20px;}