CSS定位

CSS position 属性

通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。

position 属性值的含义:

static
元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
相对定位会按照元素的原始位置对该元素进行移动。
<h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>

h2.pos_right
{
    position:relative;
    left:100px;
    /*top:10px;*/
}

这个时候left相当于flash里面的x,top相当于y。

注意是相对于其正常位置

absolute
元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

h2.pos_abs
{
    position:absolute;
    left:100px;
    top:150px;
    background:#093;
}

<h2 class="pos_abs">这是带有绝对定位的标题</h2>

通过绝对定位,元素可以放置到页面上的任何位置。下面的标题距离页面左侧 100px,距离页面顶部 150px

fixed
元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

<p class="one">一些文本。</p>
<p class="two">定位:固定定位
本例演示如何相对于浏览器窗口来对元素进行定位。</p>

p.one
{position:fixed;left:5px;top:5px;}
p.two
{position:fixed;top:30px;right:5px;}

例子一

例如中奖纪录这个按钮,info是下面的三角区域,是绝对定位,中奖纪录也是绝对定位,如图可以知道是相对于info三角区域的,

结论:绝对定位是相对于父最近一次定位,父是relative 和absolute都行。

.choujiang .info{width: 1281px;height: 280px; background: url(../images/choujiangbg2.png) no-repeat 0 0;position: absolute;top: 170px;}
.choujiang .info .beginChoujiangBtn{display: block;height:36px;width:120px;text-indent: -9999px;
background:url(../images/zjjiluBtn.png) no-repeat 0 0;top: 0px;position: absolute;}
.choujiang .info .beginChoujiangBtn:hover{background-position:0 -36px;}
原文地址:https://www.cnblogs.com/as3lib/p/4469125.html