Css中Position定位详解

html-css014

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浮动定位,当用户一直向下滚动浏览网页后,想一下子回到顶部,它只要点这个元素就行了,因为之个元素是浮云定位,所以永远是在用户可视范围的右下角

点击回顶部,或是回某个位置,主要是设置scrollTop。

下面是一个简单回顶的例子:

下面的例子是缓慢回顶。如果将快速回顶,可以直接让scrollTop = 0;就可以了。

<style>    

body{height:5000px}    

input {position:fixed bottom:0px right:0px}    

</style>    

<script>    

window.onload=function(){    

var oBtn = document.getElementById('btn')    

var timer = null    

var bFlag = false    

oBtn.onclick=function(){    

moveScroll(0,3000)

    

}    

    

window.onscroll=function(){    

if(bFlag)    

{    

clearInterval(timer)    

}

bFlag=true    

}    

    

function moveScroll(target,time)    

{    

var start = document.documentElement.scrollTop || document.body.scrollTop    

var dis = target - start    

var count = Math.floor(time/30)    

var n=0    

    

clearInterval(timer)    

timer = setInterval(function(){    

n++    

bFlag=false    

document.documentElement.scrollTop = start + dis*n/count    

document.body.scrollTop = start+dis*n/count    

if(n==count)    

{    

clearInterval(timer)    

}

    

},30)    

}    

}    

</script>