CSS中定位有四种在不同的场景下有不同的作用下面我就大体的介绍一下这四种定位.
static静态定位:应用的场景不多,这里不做介绍
下面主要介绍一下其他三种常见的定位
1.position:relative相对定位:顾名思义,相对定位就是相对于原来自己的位置做出对应的变化, 需要注意的是 :元素移动后会占有原来的位置(这是relative定位最为重要的一点)
下面为代码演示部分:
<style> * { margin: 0; padding: 0; /* 这里清除掉所有外边距和内边距, 没有实质意义,只是方便观察 */ } .pink { width: 80px; height: 80px; background-color: pink; } .purple { width: 80px; height: 80px; background-color: purple; } .green { width: 80px; height: 80px; background-color: greenyellow } </style>
这里定义了三个div并给了相应的颜色,运行结果如下
当给子盒子如下定位属性时
.purple { position: relative; top: 0; left: 80px; /* 上面给这个盒子添加了相对定位, 并让它相对原来的自己移动了80px的距离 */ width: 80px; height: 80px; background-color: purple; }
页面变成了这样,这也验证了最重要的一点—元素移动后会占有原来的位置
否则绿色的盒子就会顶上去
2.ponsition:absolute绝对定位:绝对定位是以自己父级元素做出的位置改变,如果父级元素有position属性,以父级元素为基准做出相应的移动,如果父级元素没有position属性(或者没有父级元素),以浏览器为基准做出相应的移动. 需要注意的是 :元素移动后不会占有原来的位置.
下面为代码演示
.purple { position: absolute; top: 160; left: 80px; /* 这里的紫色盒子没有父级元素 所以是以浏览器为基准的定位 */ width: 80px; height: 80px; background-color: purple; }
显然绿色盒子顶了上去,这个结果就验证了绝对定位:元素移动后不会占有原来的位置.
3.fixed固定定位:固定定位的位置是相对于整个页面的位置,与是否有父级元素无关,同样,固定定位也不会保留位置
总结