static 是默认定位值,它的定位元素不受top、left、right、bottom的影响,也就是说你给元素设置这四个属性的任何值都没有效果
relative 相对定位,设置相对定位元素的top、left、right、bottom会使当前元素相对于当前位置做一定的偏移。
比如说在做表单布局的时候,有时候label的值并没有和输入框上下居中对齐,它有一点点偏下,效果不是很好看,这个时候我们可以给label向上设置一下偏移让他们居中对齐
absolute是绝对定位,绝对定位的元素相对于最近的定位祖先元素进行定位,如果没有定位祖先元素,那么就按body定位
absolute最典型的例子就是结合relative一块完成效果,比如我有一个p,它是在页面居中的,但是它的宽度和高度是动态的,我们还有一个span标签希望永远在这右下角10px的位置,这个时候我们就可以利用absolute完成
fixed 是相对视口定位的,简称浮云定位,这个意味着就像你滚动页面,它始终位于同一个位置,top、left、right、bottom用于设置当前元素的位置。
常用的例子就是页面右下角,滚动到顶部的的功能,我们可以对这个元素设置fixed浮动定位,当用户一直向下滚动浏览网页后,想一下子回到顶部,它只要点这个元素就行了,因为之个元素是浮云定位,所以永远是在用户可视范围的右下角
CSS中的float浮动属性,一般用于标签对象(例如:<div>标签盒子、<span>标签、<a>标签、<em>标签等html标签)的浮动布局,而浮动也就是我们常说的标签对象居左靠左和居右靠右)。同时float浮动属性一般只对块级元素有效。“块级元素你可以通俗的理解为占一行并且大小可以控制的元素”。
float的属性值:left(靠左浮动),right(靠右浮动),none(不使用浮动,为默认值)
float属性的使用案例:
<!DOCTYPE html><html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
.divcss5{ width:400pxpadding:10pxborder:1px solid #F00}
.divcss5_left{ float:leftwidth:150pxborder:1px solid #00Fheight:50px}
.divcss5_right{ float:rightwidth:150pxborder:1px solid #00Fheight:50px}
.clear{ clear:both}
</style>
</head>
<body>
<div class="divcss5">
<div class="divcss5_left">布局靠左浮动</div>
<div class="divcss5_right">布局靠右浮动</div>
<div class="clear"></div><!--清除float产生浮动-->
</div>
</body>
</html>
运行效果:
float: left|right可以自动排列自动折行, 但需要clear来配合清除浮动display: inline-block 有些时候可以替代float实现相同的效果.
position: absolute|relative要配合top,left等定位
position: absolute会导致元素脱离文档流,被定位的元素等于在文档中不占据任何位置,在另一个层呈现,可以设置z-index。PS的图层效果就是position: absolute。
float也会导致元素脱离文档流,但还在文档或容器中占据位置,把文档流和其它float元素向左或向右挤,并可能导致换行。图片的文字环绕布局效果就是float。
display的inline-block不脱离文档流,将block元素当作大型字符嵌入文档流内,类似于img或者input默认效果。