IT技术博客大学习 共学习 共进步

IE6下select下拉框不能随滚动条正常滚动

量子恒道官方博客 2012-05-22 13:16:45 浏览 2,902 次

把select标签放在一个带有滚动条的区域中时,在IE6下,拖动滚动条时,select选择框不能随着滚动条正常滚动,就像被卡住了一样,用鼠标点击select下拉框才能恢复正常。
经过试验,在IE6下出现这个问题的最精简代码如下:

1
2
3
4
5
6
<div style="height:60px;overflow:auto;filter:alpha(opacity=0)">  
<select><option>a</option><option>b</option></select>  
<select><option>a</option><option>b</option></select>
<select><option>a</option><option>b</option></select>
<select><option>a</option><option>b</option></select>
</div>

只要去掉“filter:alpha(opacity=0)”这句样式,IE6中的问题就解决了,此处的问题与opacity的值无关,而是与是否有这句话有关。

下面给出一个js处理方法来去掉这句样式:

1
2
3
4
5
if(!jQuery.browser.opacity){//判断是否为IE6浏览器,因为IE6没有opacity这个属性
try{
this.boxy.get(0).style.filter = '';//把filter相关的都置为空
}catch(ex){}
}

而在用ietester调试的过程中,不论是不是加这句样式,都是没有问题的,因为ietester中的ie6有一个bug,是filter会失效,刚好,bug上再加上bug,就不会出现问题了。

建议继续学习

  1. 简单js+css实现模拟自定义select样式 (阅读 5,100)
  2. 学习libevent的select模型 (阅读 4,981)
  3. 关于JS获取select的值 (阅读 4,200)
  4. 用 Jquery 模拟 select (阅读 3,902)
  5. 小tip:纯CSS让overflow:auto页面滚动条出现时不跳动 (阅读 3,801)
  6. InnoDB select性能拐点测试 (阅读 3,620)
  7. 记录用户体验细节 (阅读 3,444)
  8. 从滚动条消失看细节设计 (阅读 3,023)