2

在下面的代码中,progressDiv 是正在构建的 DIV。但它正在垂直堆积......我需要它水平......我该怎么办?

    var progressDiv = document.getElementById('progressDiv')
    var div = document.createElement('div');

    div.style.display = 'block';
    div.style.cssFloat = 'left';
    div.style.width = '10px';
    div.style.height = '10px';
    div.style.backgroundColor = 'red';
    div.style.border = '1px solid black';

    progressDiv.appendChild(div);
    if (progressDiv.childNodes.length == 20)
        while (progressDiv.hasChildNodes())
            progressDiv.removeChild(progressDiv.firstChild);
4

3 回答 3

0

啊,好旧的IE。如果您制作diva 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);
    }
}

为什么是 aspan而不是 a div?因为 IE 不喜欢你尝试内联默认阻塞的元素,即使你改变了它们的display. 但是将默认内联元素设置为块状也没关系。

不过,不知道放下浮动是否会弄乱您正在尝试做的其他事情。但是,如果您只是想制作一个进度条,那么只要您保持progressDiv足够宽,就可以了。

于 2010-01-20T09:42:23.737 回答
0

div.style.display = 'inline'

为我工作。

于 2014-01-28T16:17:33.297 回答
-1

div.style.cssFloat = 'left';应该div.style.float = 'left';

于 2010-01-20T09:02:09.663 回答