CSS中Position:fixed偏移解决方案
Position:fixed,生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
Position:fixed,在实际使用过程中多少都会遇到偏移的问题。虽然说 Position:fixed是相对于浏览器进行定位的,有时候也会受到外层DIV的影响,在非IE下, Position:fixed,浮动时是水平位置是相对于外层的。如果需要水平居中,可以设置left:50%,margin-left:- Position:fixed /2,即本身宽度的一半。其实,CSS位置的设置逻辑还和数学真有点关系!当然,可以设置一个居中层,margin:0 auto;外层,内层进行 Position:fixed,也会水平居中。同样也实用于IE浏览器。
不过,对于非水平居中的,比如侧栏浮动,可以加个同样大小的DIV外层,一来可以在外层添加一个ID,以便JS scrollTop 来识别。二来,可以在position:fixed后保留位置,以便在高度不够特别是临界的情况下还能保持原来的高度。
Position:fixed,虽然是相对于浏览器定位的,但是,在判断滚动条而进行是否需要 Position:fixed的,可以添加一个外层给一个水平位置的定位,防止因添加了 Position:fixed后,IE下,层进行了左右的偏移