Iview中Select选择器在IE10中下拉框位置及宽度的问题
今天在调试项目的时候发现在IE10中Iview的Select选择器出了问题,具体效果见下图
下拉框的宽度铺满了整个窗口,但是将浏览器换成IE11或者谷歌,就没有这种情况。使用F12查看Dom元素发现IE10中下拉框所在的div不在父div中,而是直接在body中,style又是绝对定位,但是在IE11中下拉框的div就在父div中,因为下拉框所在的div是iview组件自己生成的,虽然能改样式,但总觉得不够优雅,所以浏览了官方文档:http://v1.iviewui.com/components/select,发现iview为了下拉框能不受父级样式影响添加了transfer属性,但默认值为false,意思就是将该属性设置为true时,下拉框的div就会放到body中,从而不受父级样式的影响,但是我没设置属性transfer为true,按道理它应该在父组件内,但是不知道什么原因在IE10中,它被放到了body中,但是没有按照属性transfer为true的样式进行控制(因为此时transfer为默认值false),于是就出现了尴尬的场景:位置变了,但是样式还是按照false时的样式,所以我为了避免这种情况,主动将属性transfer为true(既然你想在body中,那我就满足你)。于是问题就解决了。
最后虽然解决了问题,但是还是没明白在IE10中为啥下拉框的div就主动跑到body中了,如果有知道的大佬,请留言指点一下。