Во-первых, эту ошибку можно увидеть только с помощью CSS.Это происходит каждый раз, когда <ol>
скрыт и показан. Пример jsfiddle, который показывает ошибку.
Также возможно исправить ошибку с помощью CSS в некоторых случаях.Исправление непротиворечиво, но код деликатный и не самый лучший.Многие вещи, которые не должны иметь какое-либо значение в CSS, делают это, поэтому кодируйте их осторожно. Пример jsfiddle, который работает. .Основная идея заключается в следующем: переключение строки вместо списка, а затем воссоздание нумерации списка с помощью counter-reset
в (видимом, но иногда пустом) <ol>
и counter-increment
в <li>
.
Преимущество: все здесь можно спрятать в таблице стилей только для IE.Если :hover
не имеет смысла в вашем случае, и вы используете что-то вроде jQuery .show()
, рассмотрите что-то на основе .addClass()
.
Говоря о добавлении классов, как будто эта ошибка уже не была достаточно странной, кажется, что <ol>
s работает в IE в условиях, подобных первому примеру, если Javascript добавляет класс вэлемент обертки - даже если класс ничего не делает. Вот пример jsfiddle .Не могу гарантировать, что это сработает где-то еще, но здесь это работает.
Если вы пытаетесь понять ошибку, а) удачи и б) берипосмотрите на этот jsfiddle здесь .Это то, что происходит, если вы используете опцию CSS counter
(плюс обычная нумерация), но переключаете <ol>
s, а не <li>
s.Вы получаете сумасшедшую ситуацию, когда то, что показано, совершенно отличается в зависимости от того, наведете ли вы мышку от предыдущего брата, следующего брата или нет.Не имеет смысла ... но это, вероятно, ключ к пониманию того, что на самом деле означает эта ошибка.
У меня также есть ситуация, которую я не могу повторить, где нумерация - все 1, все2s, все 3s и т. Д., В зависимости от того, какой <ol>
это: первый на странице становится 1,1,1,1,1, второй становится 2,2,2,2,2, затем 3,3,3,3,3 и т. Д. Невозможно выделить причины этой причуды.