关于select元素的两个小问题

作者:zhusun 来源:口碑网ued 时间:2008-12-25 13:41:00 

在html中关于select元素的问题在很多地方都提出过,而在前段时间的项目中,刚好遇到了关于select元素的两个小问题,这里进行一下总结。     

第一就是比较有名的:一般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));

标签:select,元素,问题,浮动,浏览器
0
投稿

猜你喜欢

  • Javascript学习第一季 三

    2008-06-27 13:08:00
  • ASPImage组件的实现过程[图]

    2008-02-03 15:37:00
  • asp如何做一个只能从本站点才能访问的页面?

    2010-07-12 19:00:00
  • Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法

    2012-12-04 19:57:33
  • 浅析ASP内置组件

    2007-10-18 11:31:00
  • HTML 5 预览

    2008-01-24 12:17:00
  • css中浮动思考与小结

    2008-10-30 11:57:00
  • 根据时段自动切换你的站点CSS皮肤风格

    2007-09-20 18:08:00
  • jQuery中$.ajax的实现解析

    2008-07-20 13:11:00
  • JavaScript 数组的 uniq 方法

    2007-12-07 18:28:00
  • SQL Server中通过扩展存储过程实现数据库的远程备份与恢复

    2012-05-22 18:48:56
  • 一个完美网站的101项指标.第七部分.W3C标准

    2008-03-01 09:31:00
  • border:none;与border:0;的区别

    2009-11-27 19:04:00
  • 如何跨浏览器使用连续字符的换行

    2008-07-06 23:10:00
  • 5招优化MySQL插入方法

    2009-04-02 10:49:00
  • 为JavaScript程序添加客户端不可见的注释

    2008-05-31 08:02:00
  • 两个css郁闷的发现

    2007-12-16 15:31:00
  • 常用的三种修改mysql最大连接数的方法

    2010-03-09 15:42:00
  • 两个非常规ASP木马(可躲过扫描)

    2011-03-11 10:38:00
  • 轻松了解数据库计算机的概念和发展方向

    2009-01-23 13:55:00
  • asp之家 网络编程 m.aspxhome.com