绝对位置div位于IE7中的文本框后面

时间:2011-10-27 00:34:22

标签: javascript html css internet-explorer-7

我遇到了一个绝对定位的自定义下拉问题,在IE7中,div位于一个普通文本框后面,这个文本框没有任何特殊方式。 我已经阅读过这个主题:IE7 puts absolutely positioned div underneath, ignores z-index但解决方案并没有帮助我。

我的代码和提出上述问题的人之间的区别在于我的div是使用document.write通过javascript创建的,并通过appendChild添加它

addEvent(document.getElementById("storeDown"), "click", showRegions);
var showRegions = function(e) {
        var dd = getTarget(e);
        if(document.getElementById("regionOptions")) {
            dd.parentNode.removeChild(document.getElementById("regionOptions"));
            regionsShowing = false;
        } else {
            var ddNode = document.createElement("div");
            ddNode.id = "regionOptions";
            ddNode.style.backgroundColor = offColor;
            var optNode;
            for(var region in storeList) {
                optNode = document.createElement("div");
                optNode.innerHTML = region;
                ddNode.appendChild(optNode);
            }
            dd.parentNode.appendChild(ddNode);
            regionsShowing = true;
        }
        cancelEvent(e);
    }

我的父div的z-index为500,位于相对位置,而regionOptions位于绝对位置,我也试图为它添加一个z-index,但它并没有什么区别。

1 个答案:

答案 0 :(得分:0)

好吧终于想通了,我改变了它所附加的位置,所以它被附加在所有文本框之后的页面底部的div中(在我的例子中,是一个按钮div),所以不是dd.parentNode.appendChild(ddNode),而是现在document.getElementbyId("buttons").appendChild(ddNode),但也必须更改CSS,因此它相对于页面包装器而不是特定的div绝对定位,并且它似乎已经修复了它。