`
baobaoupup
  • 浏览: 479656 次
文章分类
社区版块
存档分类
最新评论

select网页下拉列表与div层遮盖问题

 
阅读更多

  第一就是比较有名的:一般div浮层在IE6下无法遮盖select元素的问题。首先提供了下面一个实例:

  

  注解:如果你在FirFox下和IE7下看都的结果是一样的:浮层A、B、C都可以正常的现实,即遮住下面的select元素。但是在IE6下则是3种不一样的情况,浮层A依然正常;浮层B主体部分遮盖住了select元素,但是浮层的边框却无法遮住select元素;浮层3则完全无法遮盖select元素。造成这个现象的原因是在IE6下,浏览器将select元素视为窗口级元素,这时div或者其它的普通元素无论z-index设置的多高都是无法遮住select元素的,但是可以通过同为窗口级元素的iframe来遮住select,上面的例子就是这样做的。浮层C仅仅是一个div浮层,这里不多讲,直接看浮层B的结构:

<div class="containDiv" >
  <iframe class="maskIframe" ></iframe>
  <div class="mainDiv" >浮层B</div>
</div>

  用一个div将实际需要的内容div和一个iframe元素放在一起,它们对应的样式为:

.containDiv{position: absolute; top: 140px; left: 60px; }
.maskIframe{position: absolute; left: -1px; top: -1px; z-index: -1;border:1px solid #000;height:50px;width:50px;_height:48px;_width:48px;}
.mainDiv{background:#EBAC3B;width:50px;height:50px;}

  浮层B运用了iframe在containDiv中绝对定位并设置z-index: -1;,然后让下面真正放内容的mainDiv可以遮盖住iframe,这个时候iframe是可以遮住select元素的,而间接的使得mainDiv也覆盖了select元素。但是浮层B还是不完美,原因就是这里的浮层B的边框使用的iframe边框,iframe本身可以遮盖select,但是它的边框却不能,所以出现了浮层B的情况。

  浮层A是解决了这个问题,达到了理想想过,它基本上跟浮层B一样,只是它使iframe比mainDiv上下左右各多出1px,然后再给mainDiv边框,这样浮层的边框是由mainDiv提供的,而整个mainDiv连同边框都在iframe上面,所以达到了理想效果!

  select的第二个问题是在IE下动态生成option选项的问题。看上面第二个问题的例子,当点击(限FF)的链接时在FF下可以给select元素加入3个option选项元素,但是在IE下却不行;当点击(通用)的链接时IE和FF下都可以给select元素加入3个option选项元素。原因是第一个链接是通过select元素的innerHTML属性来加入option元素的

document.getElementById("addSelect").innerHTML = "ABC";

  这个在FF下没有问题,但是IE下不能通过这个方法来向select元素加入option子元素,而是需要通过第二个链接提供的方法:

document.getElementById("addSelect").options.add(new Option("A","A",false,true));

分享到:
评论

相关推荐

    最顶层div被flash或者下拉列表遮挡的问题解决

    ### 最顶层div被flash或者下拉列表遮挡的问题解决 在网页设计中,有时会出现顶层的div元素被其他元素如Flash或下拉列表遮挡的情况。这种遮挡问题通常是由于CSS定位属性设置不当造成的,尤其是`z-index`值的设置不...

    解决DIV在IE下被下拉列表select穿透的问题(二)

    这个问题涉及到HTML中的`&lt;div&gt;`元素和`&lt;select&gt;`下拉列表之间的交互,具体表现为在Internet Explorer(特别是旧版本)中,`&lt;select&gt;`元素可能会穿透(z-index问题)或者遮盖住上方的`&lt;div&gt;`元素。 `&lt;div&gt;`元素是...

    ie6 select无法被div遮盖的bug解决方法

    当一个`&lt;div&gt;`元素试图遮盖页面中的下拉列表框`&lt;select&gt;`时,无论`&lt;div&gt;`的`z-index`值设置得多高,`&lt;select&gt;`仍然会穿透`&lt;div&gt;`显示在上方。这是由于IE6对下拉列表框的渲染机制不正确导致的,特别是其弹出式的下拉...

    layui layer select 选择被遮挡的解决方法

    这将允许内容(包括select的下拉列表)超出元素边界,从而解决被遮挡的问题。 示例代码如下: ```javascript $(".layui-table-body").css('overflow', 'visible'); $(".layui-table-box").css('overflow', '...

    html技巧代码

    - 在div内添加一个`iframe`,设置其`z-index`低于div,用以遮挡select,防止select下拉列表遮盖div内容。 8. **跨域iframe**: - 注意跨域引用的问题,iframe的`src`属性必须指向同源策略允许的地址,否则可能...

    asp.net 页面版文本框智能提示JSCode (升级版)

    为了实现这一功能,作者在原有的基础上进行了升级,添加了多位置智能提示的设定,并解决了在IE6浏览器中下拉列表无法被遮盖的问题。 在多位置智能提示的设定中,通过在文本框的onfocus事件中绑定一个函数(例如:...

    Bootstrap下拉菜单效果实例代码分享

    在旧版本的浏览器,如IE8中,Bootstrap可能存在兼容性问题,可能会遮盖一些错误,因此在开发过程中,应确保在多种浏览器和不同版本中进行测试。 对于如何完全去除下拉菜单的边框,可能需要进一步的CSS定制,这超出...

    表单Form元素的一些简单实现代码以注册为例

    5. 下拉列表(Select List):`&lt;select&gt;`和`&lt;option&gt;`标签组合使用,为用户提供可选择的选项。 6. 文本区域(Textarea):`&lt;textarea&gt;`提供多行文本输入。 7. 复选框(Checkbox):`&lt;input type="checkbox"&gt;`允许...

Global site tag (gtag.js) - Google Analytics