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

Изменить нумерацию в упорядоченном списке?

Вы можете изменить число, с которого начинается упорядоченный список:

<ol start="3">
    <li>item three</li>
    <li>item four</li>
</ol>

... но есть ли способ, чтобы элементы списка имели произвольные числа, а не только последовательную нумерацию?

<ol>
    <li>item two</li>
    <li>item six</li>
    <li>item nine</li>
</ol>

Единственный способ, с помощью которого я могу это сделать, - обернуть каждый <li> в свой собственный <ol>, который, очевидно, не идеален. Поддержка HTML, Javascript и CSS приветствуется.

ps: хотя номера позиций произвольны, они все еще упорядочены, поэтому не волнуйтесь о семантике

4b9b3361

Ответ 1

В HTML 4.01 в <li> есть устаревший атрибут value:

<ol>
<li value="30"> makes this list item number 30.
<li value="40"> makes this list item number 40.
<li> makes this list item number 41.
</ol>

Ответ на не-устаревший (CSS) (как часто) более элегантный, но меньше... прямой:) spec несколько сухой; googling включает более немедленно используемые материалы, такие как this:

Также как продолжение нумерации из предыдущего списка вам нужно будет установить свойство CSS для увеличения соответствующий счетчик. Но сделать это начать увеличиваться с другого отправной точкой вы можете пройти необязательный второй параметр в counter- reset свойство числа. Так начиная с 5 будет выглядеть что-то как это в вашем CSS:

ol.continue {
  counter-reset: chapter 4;     /* Resets counter to 4. */
}

Поскольку счетчик всегда будет resetпрежде чем он будет увеличен, чтобы начать список с номером 5, нам придется установите счетчик на 4.

Ответ 2

В li присутствует атрибут value, хотя это устарело:

<ol>
    <li value="2">item two</li>
    <li value="6">item six</li>
    <li value="9">item nine</li>
</ol>

Страница w3schools для <[email protected]> гласит:

Атрибут value элемента li был устаревшим в HTML 4.01 и не поддерживается в XHTML 1.0 Строгое DTD.

Примечание: На данный момент нет CSS альтернатива для атрибута value.

(Несмотря на высказывание "стили использования" для предупреждения об устаревании на главной странице <li>.)

Ссылка на проект HTML 5 для li предполагает, что он все еще действует там...

Ответ 3

Глядя на все эти ответы, я чувствую себя немного нехорошо. Вы действительно хотите использовать LI для этого? Если это означает создание 'dummy' lis, javascript или пользовательских классов CSS, я бы начал смотреть на другие возможности. Точка LI (на мой взгляд) НЕ управляет нумерацией. Если вам нужно самостоятельно управлять цифрами, вы используете только LI для управления стилем - как создать собственный стиль и просто придерживаться своих чисел в <span> или что-то?

Ответ 4

Устаревший способ HTML

<ol>
   <li>List item 1</li>
   <li VALUE=5 TYPE="A">List item E</li>
   <li>List item 3</li>
</ol>

способ CSS

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">
ol { 
    counter-reset:item; 
 }
li {
    display:block; 
 }
li:before { 
    content:counter(item) '. '; 
    counter-increment:item; 
 }
#new_number {
    counter-reset:item 24;
 }
</style>

<!--[if IE]>
<script type="text/javascript">
window.onload=function() {
   document.getElementById('new_number').value='25';
 }
</script>
<![endif]-->

</head>
<body>

<ol>
  <li id="new_number">list item</li>
  <li>list item</li>
  <li>list item</li>
  <li>list item</li>
  <li>list item</li>
  <li>list item</li>
</ol>

</body>
</html>

Ответ 5

Например -

<ol id="reverse_numbering">
    <li>foo</li>
    <li>bar</li>
    <li>baz</li>
</ol>

Это то, что вы можете сделать -

<script type="text/javascript">
    var reverse = $('reverse_numbering');
    reverse.style.listStyle='none';
    var li = reverse.getElementsByTagName('li');
    for(var i=0; i<li.length; i++) {
        li[i].insertBefore(document.createTextNode(li.length-i+'. '), li[i].firstChild);
    }
</script>

Ссылка: Форумы справки HTML.

Ответ 6

На самом деле это даже проще, чем вы думаете. То, что вы делаете, в основном "приостанавливает" список, чтобы вы могли что-то вставить. Когда вы делаете это в тексте, вы используете тег &lt;div&gt;. (Белки звонят сейчас? ")

CSS

...<br />

/* This style removes the indentation that &lt;ol&gt; creates. In my document it was 30pt */<br />
.pauselist {margin-left:-30pt;}
<br />
<br />
XHTML<br />
...<br />
&lt;p&gt;Text&lt;/p&gt;<br />
&lt;p&gt;Text&lt;/p&gt;<br />
&lt;ol&gt;<br />
  &lt;li&gt;Item 1&lt;/li&gt;<br />
  &lt;li&gt;Item 2<br />
    &lt;div class="pauselist"&gt;<br />
&lt;p&gt;Text&lt;/p&gt;<br />
&lt;p&gt;Text&lt;/p&gt;<br />
&lt;p&gt;Text&lt;/p&gt;<br />
&lt;!-- Okay now let continue with the list --&gt;<br /> 
    &lt;/div&gt;<br />
  &lt;/li&gt;<br />
  &lt;li&gt;Item 3&lt;/li&gt;<br />
  &lt;li&gt;Item 4&lt;/li&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;Text&lt;/p&gt;<br />
&lt;p&gt;Text&lt;/p&gt;<br />
<br />
<pre>

------ Результаты --------- Текст Текст

  • Пункт 1
  • Пункт 2

Текст Текст Текст

  • Пункт 3
  • Пункт 4

Текст Текст

Ответ 7

Я думаю, что эта проблема начинается с семантики (которая, как вы знаете, является одним из столпов создания стандартных страниц): вы хотите использовать упорядоченный список, чтобы представить неупорядоченный.

Мои предложения:

1) Используйте ul и добавьте изображения с цифрами на основе классов (это можно сделать программно, и вам нужно только создать число изображений один раз, а также дать вам варианты стилизации)

2) Используйте список определений. Я знаю его семантику растяжения немного, но если "term" (dt) "Горизонтальный", а определения (dd) - это варианты кроссвордов, я думаю, что он становится семантическим. С помощью этого вы можете добавить нужные вам номера и стилизовать их, используя любой тег, который вам нравится.

Надеюсь, что это поможет.