Ах, старый добрый IE. Если вы сделаете div
a span
, установите стиль на inline-block
и сбросите поплавок, он должен работать:
var progressDiv = document.getElementById('progressDiv');
var span = document.createElement('span');
span.style.display = 'inline-block';
span.style.width = '10px';
span.style.height = '10px';
span.style.backgroundColor = 'red';
span.style.border = '1px solid black';
progressDiv.appendChild(span);
if (progressDiv.childNodes.length == 20) {
while (progressDiv.hasChildNodes()) {
progressDiv.removeChild(progressDiv.firstChild);
}
}
Почему span
, а не div
? Потому что IE не любит, когда вы пытаетесь встроить элементы, которые по умолчанию блокированы, даже если вы измените их display
. Но это нормально, если блокировать встроенные элементы по умолчанию.
Не знаю, если падение поплавка испортит то, что вы пытаетесь сделать. Но если вы просто пытаетесь сделать индикатор выполнения, все будет хорошо, если вы сохраните progressDiv
достаточно широким.