#html #css
#HTML #css
Вопрос:
Я использую списки для страницы «Правила и условия», и для того, чтобы сделать структуру более аккуратной, я использую упорядоченные списки. Проблема в том, что я хочу сделать внешний список неупорядоченным, и когда я это делаю, он теряет количество вложенных упорядоченных списков. Я знаю, что могу создать это многими способами, в том числе вручную, но я хочу знать, возможно ли как-то справиться с этой ситуацией.
<ol>
<li>
<h2>Title of section 1</h2>
<ol>
<li>Text 1.1
<li>
<li>Text 1.2
<ol>
<li>Text 1.2.1</li>
<li>Text 1.2.2</li>
</ol>
</li>
</ol>
</li>
<li>
<h2>Title of section 2</h2>
<ol>
<li>Text 2.1
<li>
<li>Text 2.2
<ol>
<li>Text 2.2.1</li>
<li>Text 2.2.2</li>
</ol>
</li>
</ol>
</li>
</ol>
Используя CSS, я могу показать все так, как должно быть
https://jsfiddle.net/tutancamon/bfhkqtdg/41/
Я хочу удалить номер перед заголовками, потому что он уже содержит их…
Комментарии:
1. Вам, вероятно, не нужны списки, вы, вероятно, хотите, чтобы вложенные
<section>
(и потенциально<article>
) элементы создавали желаемую семантику2. Да, как я уже упоминал, я знаю, что есть много вариантов. Все еще интересно, возможно ли это;)
3. Вы можете использовать
list-style: none;
для удаления чисел.4.
list-style
потенциально переопределяет другие свойства в стиле списка. Поскольку в вопросе предлагалось удалить маркеры элементов списка в списке,list-style-type
следует использовать вместо этого, чтобы быть более конкретным.
Ответ №1:
Элемент неупорядоченного списка <ul>
звучит так, как вам нужно использовать.
ul {
list-style: none;
}
<ul>
<li>
<h2>Title of section 1</h2>
<ol>
<li>Text 1.1
<li>
<li>Text 1.2
<ol>
<li>Text 1.2.1</li>
<li>Text 1.2.2</li>
</ol>
</li>
</ol>
</li>
<li>
<h2>Title of section 2</h2>
<ol>
<li>Text 2.1
<li>
<li>Text 2.2
<ol>
<li>Text 2.2.1</li>
<li>Text 2.2.2</li>
</ol>
</li>
</ol>
</li>
</ul>
Комментарии:
1. Извините, я понял, что неправильно прочитал проблему. Я думаю, вам нужно использовать
counter-increment
иcounter-reset
, как в этой статье: css-tricks.com/custom-list-number-styling , тогда вы могли бы установить размер шрифта равным 0px или что-то в этом роде для внешнего списка…
Ответ №2:
Используйте свойство css list-style-type
следующим образом:
ol.outer {
list-style-type: none;
}
Однако это приведет к путанице с нумерацией. Который вы можете исправить следующим образом:
ol {
list-style-type: none;
counter-reset: item;
}
ol>li::before {
counter-increment: item;
content: counters(item, ".") " ";
}
ol.outer>li::before {
content: "";
}
<ol class="outer">
<li>
<h3>Section1</h3>
<ol>
<li> text1.</li>
<li> text2 </li>
<li> text3</li>
</ol>
</li>
<li>
<h3>section 2</h3>
<ol>
<li> text</li>
<li> text</li>
<li>
<strong>Some texts</strong>
<ol>
<li>text</li>
<li>text</li>
<li>text</li>
</ol>
</li>
</ol>
</li>
</ol>
Комментарии:
1. Это будет нацелено на весь упорядоченный список; это именно та проблема, которой OP хочет избежать
2. да, и даже когда я указываю точный ol, он не работает должным образом.
3. @tutancamon на самом деле я протестировал это на вашем собственном коде, и он работает просто отлично: jsfiddle.net/webbertakken/9qrpcykt/1 Это просто подводит вас к следующей проблеме структурирования вашей нумерации
4. @webber Именно моя точка зрения! С номером моей скрипки все в порядке. (Я не сохранил его в прошлый раз, но теперь все должно быть в порядке jsfiddle.net/tutancamon/bfhkqtdg/41 )
5. @tutancamon достаточно справедливо. Я обновил свой ответ упрощенной и исправленной версией того, что вы пытались сделать.