Это вполне возможно сделать только с помощью CSS (2.1):
ol.custom {
list-style-type: none;
margin-left: 0;
}
ol.custom > li {
counter-increment: customlistcounter;
}
ol.custom > li:before {
content: counter(customlistcounter) " ";
font-weight: bold;
float: left;
width: 3em;
}
ol.custom:first-child {
counter-reset: customlistcounter;
}
Имейте в виду, что это решение опирается на псевдоселектор: before, поэтому некоторые старые браузеры, в частности IE6 и IE7, не будут генерировать сгенерированные числа. Для этих браузеров вы захотите добавить дополнительное правило CSS, предназначенное только для них, чтобы они использовали обычный стиль списка:
ol.custom {
*list-style-type: decimal; /* targets IE6 and IE7 only */
}