请问是在层里加入framset吗?那样会极大的加大复杂度吧?

解决方案 »

  1.   

    呵呵,select有特殊性,是强制置顶的东东,不受zindex管理
      

  2.   

    可以考虑在置顶DIV出现时暂时关闭select显示,或者用其它东东代替select
      

  3.   

    老问题了,在网页里面加上这一段也许可以解决:<SCRIPT LANGUAGE="JavaScript" defer>
    <!--
    var elms = document.getElementsByTagName("select");
    for (var i=0;i<elms.length;i++)
    if (elms[i].type=="select-one") cover(elms[i]);function cover(s){
    s.style.display="none";
    s.onmouseout = hideSelect;
    s.onblur = hideSelect;
    s.onchange = resetSelectValue;
    var t = document.createElement("input");
    t.style.width = s.style.width;
    t.value = s.options[s.selectedIndex].text;
    t.onmouseover = showSelect
    document.body.insertBefore(t,s)
    }
    function showSelect(){
    var e = event.srcElement;
    e.style.display="none";
    e.nextSibling.style.display="inline";
    }
    function hideSelect(){
    var e = event.srcElement;
    e.style.display="none";
    e.previousSibling.style.display="inline";
    e.blur();
    }
    function resetSelectValue(){
    var e = event.srcElement;
    e.previousSibling.value = e.options[e.selectedIndex].text
    e.blur();
    }
    //-->
    </SCRIPT>
      

  4.   

    考虑到select上原来可能已经定义了onchange事件,上面的代码改为:<SCRIPT LANGUAGE="JavaScript" defer>
    <!--
    var elms = document.getElementsByTagName("select");
    for (var i=0;i<elms.length;i++)
    if (elms[i].type=="select-one") cover(elms[i]);function cover(s){
    s.onmouseout = hideSelect;
    s.onblur = hideSelect;
    if (s.onchange==null)
    s.onchange = resetSelectValue;
    else{
    s.doOnchange = s.onchange;
    s.onchange = function(){this.doOnchange();resetSelectValue()}
    }
    var t = document.createElement("input");
    t.style.width = s.offsetWidth;
    t.value = s.options[s.selectedIndex].text;
    t.onmouseover = showSelect
    document.body.insertBefore(t,s)
    s.style.display="none";
    }
    function showSelect(){
    var e = event.srcElement;
    e.style.display="none";
    e.nextSibling.style.display="inline";
    }
    function hideSelect(){
    var e = event.srcElement;
    e.style.display="none";
    e.previousSibling.style.display="inline";
    e.blur();
    }
    function resetSelectValue(){
    var e = event.srcElement;
    e.previousSibling.value = e.options[e.selectedIndex].text
    e.blur();
    }
    //-->
    </SCRIPT>
      

  5.   

    谢谢各位高手,看来是只能再显示div的同时隐藏select了,谁让他们水火不容。真的不能通过设置他们的某个属性来解决么?^_^,那样多轻松啊。
      

  6.   

    个人之见,以资参考:
    http://jkisjk.vip.sina.com/html/DivBeforeSelect.htm
      

  7.   

    “虽说div直接盖不住select
    但是div可以盖iframe,而iframe可以盖select,
    所以,把一个iframe来当作div的底,
    这个div就可以盖住select了.
    ”把一个iframe来当作div的底,怎么做?我是爱问的菜鸟
      

  8.   


    鼠标在select上的div上移进移出,就可以看到效果
    查看源文件就可以看到代码。
      

  9.   

    其实并不是div跟select有什么水火不容的,在firefox下面就没有问题:<div style="background-color:yellow;width:300;height:300;top:0;left:0;position:absolute;z-index:1"></div>
    <select style="top:150;left:100;position:absolute;z-index:2">
    <option>test<option>test<option>test
    </select>
    <select style="top:100;left:100;position:absolute;z-index:0">
    <option>test<option>test<option>test
    </select>其实根本就是IE对select框的处理有问题,可是bug被报告这么多年了,M$显然一点都不在乎别人骂他霸道。
      

  10.   

    各位我怎么用脚本设置一个对象的Z-index呢?
    我用了如下:
    div.style.z-index=0;
    结果报错,认为是z减去index了,我该怎么设置呢??
      

  11.   

    这个只是IE的问题,也可以说是IE的BUG,以前网上提及过很多次,很多人也用iframe做!
    iframe长度宽度及显示位置和Div的一样就可以了
      

  12.   

    也碰到这样的问题,不知怎么解决
    [email protected]
      

  13.   

    我不知道你说的加入iframe 怎么用啊 很费解 我昨天找了好长时间都没解决
      

  14.   

    用iframe 吧   因为只有IE6才有这情况  所以可以<!--[if IE 6]><iframe>.....</iframe><![endif]-->   这样其他浏览器就不用执行http://blog.csdn.net/bennman/archive/2010/05/24/5619991.aspx