我遇到了一个绝对定位的自定义下拉问题,在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,但它并没有什么区别。
答案 0 :(得分:0)
好吧终于想通了,我改变了它所附加的位置,所以它被附加在所有文本框之后的页面底部的div中(在我的例子中,是一个按钮div),所以不是dd.parentNode.appendChild(ddNode)
,而是现在document.getElementbyId("buttons").appendChild(ddNode)
,但也必须更改CSS,因此它相对于页面包装器而不是特定的div绝对定位,并且它似乎已经修复了它。