其实以前这个问题我解释过很多次了……这个帖子就作为一次比较专门的解释地方吧:
select元素在ie中是属于一个特例,它和其他的html元素不同,从浏览器层面来解释,它实际上是一个窗体级别的元素(如果有做过c/s开发,应该会知道这点),所以它的优先级大大高于其他所有的html标签,只要有它在的地方,它就会从所有元素的背后冒出个头来,而只有同样窗体级的frame才能遮住它(废话,要是遮不住select,那这个东东不就从frame外冒出来?)
而微软为了解决这个问题,就给iframe(这个东东不是窗体级的哦!)增加了一个属性,让它能够遮住select(不然在一个iframe外诡异地出现一个select……成何体统),因此,iframe在ie中就附有了这个神圣的使命,遮住select,不让它随意地抛头露面。
而且,由于iframe本身并不是窗体级别的元素,所以只要设置z-index,就可以设置iframe在页面中的层次关系,利用这一点就可以很方便来遮住那个不怎么讨喜的select。代码基本上就是我上面写的那个。