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;}