Ни одно из решений на этой странице не работает правильно и универсально для всех уровней и длинных (завернутых) абзацев.Действительно сложно добиться последовательного отступа из-за переменного размера маркера (1., 1.2, 1.10, 1.10.5,…);его нельзя просто «подделать», даже с предварительно вычисленным полем / отступом для каждого возможного уровня отступа.
Я наконец-то нашел решение, которое на самом деле работает и не требует JavaScript.
Он протестирован на Firefox 32, Chromium 37, IE 9 и браузере Android.Не работает в IE 7 и более ранних версиях.
CSS:
ol {
list-style-type: none;
counter-reset: item;
margin: 0;
padding: 0;
}
ol > li {
display: table;
counter-increment: item;
margin-bottom: 0.6em;
}
ol > li:before {
content: counters(item, ".") ". ";
display: table-cell;
padding-right: 0.6em;
}
li ol > li {
margin: 0;
}
li ol > li:before {
content: counters(item, ".") " ";
}
Пример:
Попробуйте на JSFiddle , раскошелиться на Суть .