有过CSS开发经验的同学,肯定对position属性不陌生。不过这个熟悉的属性确实是面试题中的常客,这也说明了这个属性在CSS的世界里。它在世界上是有一定地位的,下面就详细说一下position这个属性。在w3school中,position属性的定义和用法是这样解释的。position属性指定元素的定位类型。说明此属性定义用于建立元素布局的定位机制。任何元素都可以定位,但绝对或固定元素会生成块级框,而不管元素自身的类型如何。相对定位的元素相对于其在正常流中的默认位置有偏移。CSS定位机制CSS具有三种基本定位机制:正常流定位、浮动定位和绝对定位。除非另有说明,否则所有框均按正常流程放置。也就是说,元素在正常流中的位置由元素在(X)HTML中的位置决定。块级盒子从上到下依次排列,盒子之间的垂直距离由盒子的垂直边距计算。行内框水平排列成一行。它们可以使用水平填充、边框和边距来隔开。但是,垂直填充、边框和边距不会影响行内框的高度。由一行组成的水平框称为行框,行框的高度总是足够大以容纳它包含的所有行内框。但是,设置行高可以增加这个框的高度。position属性对应的值为position:static;定位:继承;位置:相对;位置:绝对;位置:固定;定位:粘性;(新属性值)1.position的默认值:static。没有定位,元素出现在正常流中(忽略顶部、底部、左侧、右侧或z-index声明)。元素框正常生成。块级元素生成一个矩形框作为文档流的一部分,而内联元素创建一个或多个行框放置在它们的父元素中。2.position:inheritinherit值和其他css属性的inherit值一样,就是继承父元素的position值。3.position:relative相对定位,相对于自身的初始位置,不脱离文档流。也就是说,元素框架偏移了一定的距离,元素仍然保持定位前的形状,原先占据的空间依然存在。比如html结构
