解决jquery ui dialog 在ie9 下不居中问题

2013/08/28 4002点热度 0人点赞 0条评论

昨天测试系统,发现dialog在IE9下弹出不居中,刚开始以为写得代码有问题,找呀找就是没有找到错误.

后来百度,google下,发现很多都有这个问题,都是这个本就不支持,我信了,然后找了个解决方案,就是在执行

$('<div>').dialog({...});

以后增加代码

//修复IE9浏览器dialog不居中问题
    if($.browser.msie){
        $("div.ui-dialog").css("position", "absolute");
        $("div.ui-dialog").css("top", (($(window).height() - $("div.ui-dialog").outerHeight()) / 2) + $(window).scrollTop() + "px");
        $("div.ui-dialog").css("left", (($(window).width() - $("div.ui-dialog").outerWidth()) / 2) + $(window).scrollLeft() + "px");
    }

问题暂时解决了.

后来想想不对劲,ui出了这么久,不可能遗漏这么一个大bug,然后我就从官网上下了一个对应的版本研究,发现在IE9下都能居中.

我想难倒是js冲突?

我就一个个的去js,发现去完 还是那样.

我又想可能是样式冲突吧,然后,我就打开狐火的firebug,发现除了本身的ui样式还有其它的样式

那我就一个个把非ui的样式往下去,去了这行代码

body > div{text-align:left;margin-right:auto;margin-left:auto; color:#343434;}

发现可以居中了,最后精确发现时margin-right:auto;margin-left:auto;这个搞的鬼,唉浪费了一上午的时间

yxkong

这个人很懒,什么都没留下

文章评论