灵异事件[ie7的怪异]
放假前期的忙碌,每天事情都比较多,但是也在忙碌工作中发现了一个怪异事情,就是ie7下面再次加载导致样式错误的情况,这里跟大家分享一下,希望在大家的工作中可以提供少许帮助,快速定位问题,事情是这样发生的:
在校友提供的换肤入口那里,首次打开页面,点击换肤,会出现下拉菜单,效果展示如下:

但是在切换其他颜色风格的时候,ie7下面就会出现异常,效果会出现这样的情况:

觉得有点奇怪,所以分析了一下,原来是这样,大家再看2副图:


可以看出,首次解析的时候,宽度取了117px,切换的时候竟然是126px,这个差异导致这里展示出现了问题。
再看下代码,这里是这样书写的:
- #head_style_menu{width:117px;_width:126px;}
很明显,换肤切换的时候,渲染的是写给ie6的属性值,所以出错了,据分析,动态加载js的操作可能导致了下划线的写法失效了,但是ff下面是好的,证明后面的是有效的,那也就可能是ie7本身的缺陷,导致样式动态加载的过程不能重新渲染。
为了解决这个问题,所以就采用单独处理ie7和ie6的问题,这样就不会出问题了,可以这样来写:
- #head_style_menu{width:117px;}
- * html #head_style_menu{width:126px;}
这样,ie7始终读取的是117px的值,ie的问题单独读取下面的写法。
大家有其他的看法也可以在这里分析,嘿嘿
把gb_color.css中的:
@import url(”/qzonestyle/xiaoyou_portal_v2/css/gb_css.css”);
删掉试试。
假如不重新加载gb_css.css,宽度应该不会被重新渲染
木法重现…红姐…
回头我再写个demo试试看..
@bigCat
绝对可以,这个是需要动态加载css才可以重现的。