【问题标题】:appending DIV comes vertically附加 DIV 垂直
【发布时间】:2010-01-20 08:56:44
【问题描述】:

在下面的代码中,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);

【问题讨论】:

    标签: html appendchild


    【解决方案1】:

    啊,好旧的 IE。如果您将div 设为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 足够宽,应该没问题。

    【讨论】:

    • 那么问题出在其他地方,上面的方法确实有效:pastie.org/786193 试过 Chrome、Firefox、IE7、Safari...
    【解决方案2】:

    div.style.display = 'inline'

    为我工作。

    【讨论】:

    • 嘿@uszywieloryba,最好在你的答案中包含一些解释。 SO 用于学习,而不是用于复制和粘贴。
    【解决方案3】:

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

    【讨论】:

    • 对不起..还是一样
    • 确保包含元素的宽度足以容纳 20 x 10 像素。
    • 包含元素足够宽。这里..这是外部和内部 div 标签的组合...通常它将垂直对齐。我需要的是水平对齐外部 div 标签
    • 我认为不应该,是吗? float 是 JavaScript 中的“未来保留字”,直到刚刚完成的第 5 版,所以 div.style.float 在几乎任何实现中都不是有效的构造;你必须使用div.style["float"]。但是 W3C 知道这一点,因此将属性命名为 cssFloat 以至少在 CSS2 中避免该问题:w3.org/TR/DOM-Level-2-Style/css.html
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2018-09-08
    • 2011-07-07
    • 2022-01-12
    • 2013-07-14
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多