CSS的定位机制有3种:普通流、position和float。
1、普通流就是正常的文档流,在HTML里面的写法就是从上到下,从左到右的排版布局。
2、position 属性规定元素的定位类型。
static:默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
relative:生成相对定位的元素,相对于其正常位置进行定位。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。
absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
inherit:规定应该从父元素继承 position 属性的值。
3、float:
left:元素向左浮动。
right:元素向右浮动。
none:默认值。元素不浮动,并会显示在其在文本中出现的位置。
inherit:规定应该从父元素继承 float 属性的值。
工作小记录:一个div滚动至顶部后固定时,chrome下position的fixed 抖动解决方案。
第一种 :给fixed的元素添加css的样式 -webkit-transform: translateZ(0);
第二种:document.body.appendChild(document.getElementById("test")),将其定位的元素放置在最后。当滚动上去的时候在还原。