1. 今天修改了手机新闻模块标题通过定义fixed之后,在苹果手机下显示bug,在加载完DOM结构后,会出现重绘的问题。在之前首页也出现了底部导航fixed出现相同问题的情况。首页的bug最后是通过修改DOM结构解决的问题,虽然修改DOM是最终的解决方案。但是出现问题,首先要理清出现问题的原理。
2. 首先fixed是通过当前浏览器窗口进行定位,会使元素脱离文档流,不占据页面的空间。在处理问题上最开始的思路是清除浮动。所以使用了四中清除浮动的方式!一个都没用!通过层层测试,最终理解到,因为清除浮动首先我们是想让浮动的模块高度填充给父级容器,使得页面空间得到填充,但是在fixed的问题上,我们既希望他脱离文档流,又希望他独自占据页面空间,这就相互矛盾了。所以采用修改DOM结构,将模块冲center中提取出来,这样子的好处就是不和center中的float,absolute,relative发生冲突。
3. 经验总结:以后再写DOM的时候,要考虑fixed的元素一定要单独拿出来写样式,这样在后期修改和产生问题上,能避免和其他模块产生冲突,从而快速定位解决问题,所以说DOM的结构决定产品的质量,经济基础决定上层建筑,写好DOM从我做起~~~~~~