z-index问题

时间:2010-12-23 18:43:29

标签: javascript css z-index inline-styles

我必须遗漏一些关于z-index的内容。看看这段代码:

var span = document.createElement('span');
span.innerHTML = '<div style="background: none repeat scroll 0px 0px' +
    '#000000; opacity: 0.7; display: block; top: 0px; bottom: 0px; ' +
    'left: 0px; right: 0px; position: fixed; z-index: 1;"></div>';

span.innerHTML += '<div id="fancybox-wrap" style="opacity: 1; ' +
    'width: 420px; height: 200px; top: 467px; left: 481.5px; ' +
    'display: block; z-index: 2; ' +
    'border: 1px solid black;">Inside div</div>';
document.body.appendChild(span);

基于第二个div具有更高z-index的事实,它应该在第一个div的顶部吗?

看看http://jsfiddle.net/qwertymk/TQSkX/,看看我的意思

2 个答案:

答案 0 :(得分:6)

z-index不适用于position: static(默认值)的元素

答案 1 :(得分:2)

您需要在css中的第二个div上设置位置,以便读取z-index。

position: relative;添加到您的第二个div,它应该可以正常工作。

   var span = document.createElement('span');
    span.innerHTML = '<div style="background: none repeat scroll 0px 0px' +
        '#000000; opacity: 0.7; display: block; top: 0px; bottom: 0px; ' +
        'left: 0px; right: 0px; position: fixed; z-index: 1;"></div>';

    span.innerHTML += '<div id="fancybox-wrap" style="opacity: 1; ' + 
        'width: 420px; height: 200px; top: 467px; left: 481.5px; ' +
        'display: block; position: relative; z-index: 2; ' +
        'border: 1px solid black;">Inside div</div>';
    document.body.appendChild(span);