首先来了解CSS的定位机制
CSS有三种基本的定位机制:普通流,浮动和绝对定位。除非专门制定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在html中的位置决定。块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置,可以使用水平内边距,边框和外边距调整它们的间距。但是,垂直内边距,边框和内边距不影响行内框的高度,有一行形成的水平框称为行框,行框的高度总是足以容纳它包含的所有行内款。不过,设置行高可以增加这个框的高度。
position属性规定了元素的定位类型。
这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对火固定元素会生成一个块级框,不论该元素本身是什么类型,相对定位元素会相对于它在正常流中的默认位置偏移。
static 默认值,元素框正常生成。块元素生成一个矩形框。作为文档流的一部分,行内
元素则会创建一个或多个行框,置于其父元素中。
absolute 生成绝对定位的元素,相对static定位以外的第一个父元素进行定位,元素的位 置通过left,top,right,bottom进行规定。
元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就 好像元素原本不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed 生成绝对定位的元素,相对于浏览器窗口定位
relative 生成相对定位的元素,相对于其正常的位置进行定位(元素框偏移某个距离,元 素仍保持其为定位前的形状,他原本所占的空间任保留),因此.left:20 会向元 素的left位置添加20像素
inherit 规定应该从父元素继承position属性的值
top:定义了一个定位元素的上外边距与其包含块上边界之间的偏移。
right,bottom,left以此类推
overflow:设置元素的内容溢出其区域发生的事情(hideen,scroll,auto)
vertical-align:设置元素垂直对齐的方式
z-index:设置元素的堆叠顺序