Css中Position定位详解

html-css038

Css中Position定位详解,第1张

Position属性确认元素的定位

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默认效果。