CSS定位是一种用于控制页面上元素的位置和排列的技术。CSS有三种基本的定位机制:普通流、浮动流和定位流,其中定位流包括相对定位、绝对定位和固定定位。以下是CSS定位的总结:普通流:元素默认按照从上到下或者从左到右的顺序排列。浮动流:添加了浮动元素。定位流程:新增定位元素,包括相对定位、绝对定位、固定定位。定位机制的区别:相对定位:基于元素原来的位置,按照设置的偏移量进行定位,元素还在文档流中,元素的宽高保持不变,设置偏移量不会影响其他元素的位置。绝对定位:以距离设置了绝对定位或相对定位的元素最近的父元素为准,如果没有父元素设置绝对定位或相对定位,则元素相对于根元素即html元素定位,元素为脱离文档流,且元素不设置宽度时,宽度由元素内部的内容决定。固定定位:基于浏览器窗口,固定在屏幕的某个位置,不随页面滚动而滚动。定位属性:position:用于设置元素的定位方式,其属性值包括static、relative、absolute和fixed。top,right,bottom,left:用于设置元素相对于其定位的父元素的偏移量。z-index:用于设置元素的层级,层级较高的元素会覆盖在层级较低的元素上。绝对定位框的水平和垂直居中可以通过以下方式实现:.box{position:absolute;左:50%;左边距:-100px;顶部:50%;边距顶部:-100px;宽度:200px;高度:200px;background-color:red;}定位使用场景:相对定位:用于微调元素的位置,使其相对于原位置移动一定距离,但不影响其他元素的位置。绝对定位:用于将元素定位在其父元素的某个位置,可以实现元素居中和遮罩的效果。固定定位:用于将元素固定在屏幕的某个位置,不随页面滚动而滚动。常用于实现导航栏、返回顶部等功能。层级是CSS定位需要注意的问题。规则如下:标准流框低于浮动框,浮动框低于定位框。定位高于浮动,浮动高于标准流量。使用方法:必须有定位(static除外),给定z-index的值为level的值(不给定则默认为0)。级别为0的框也高于标准流量和浮动。具有负层次结构的框,低于标准流和浮动。层次结构不带小数。层级是一样的,后面的盒子比前面的盒子层次高。浮动或标准流框,下面的框比前面的框更高。absolute不占空间,relative占空间。而且级别的高低与是否占据位置无关。
