CSS position 属性分析

position是css重要的属性,通过设置position,可以把元素放置到一个静态的、相对的、绝对的或者是固定的位置中。
position有以下五个属性(在某些资料网站中,可能只会介绍前四个属性)。

描述
static默认值,设置了static的属性,没有定位,它会出现在正常的流中。
relative生成相对定位的元素,相对于其正常位置进行定位。因此,”left:20” 会向元素的左侧位置添加 20 像素。
absolute生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
fixed生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。它的实际作用是不论窗口滚动与否,元素都会留在指定的位置。
inherit规定应该从父元素继承 position 属性的值。

下面我们写几个例子主要观察一下relative与absolute的用法:

static 就不在演示,它是position的默认属性值,它只会让元素按照正常的位置显示。我们来看看relative值的显示效果;

position: relative;
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <style>
        h2.move_left
        {
            position:relative;
            left:-50px;
        }

        h2.move_right
        {
            position:relative;
            left:50px;
        }
        </style>
    </head>

    <body>
        <h2>这是位于正常位置的标题</h2>
        <h2 class="move_left">这个标题相对于其正常位置向左移动</h2>
        <h2 class="move_right">这个标题相对于其正常位置向右移动</h2>
        <p>相对定位会按照元素的原始位置对该元素进行移动。</p>
    </body>

</html>

=== 执行效果 ===
这里写图片描述

position: absolute;

absolute生成绝对定位,absolute在没有设定TRBL(即top/right/bottom/left)值时是根据父级对象的坐标作为初始点的,当设定TRBL值后就会根据浏览器左上角作为原始点。实例如下:

部分代码借鉴 http://www.jb51.net/css/68072.html

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8" />
        <style type="text/css">
            html,body,div{
                margin:0;
                padding:0;
                list-style:none;
            }
            .center{
                margin:30px;
                border:#999999 solid 10px;
                width:400px;
                height:300px;
            }
            .div1{
                width:200px;
                height:200px;
                background:#0099FF;
                position:absolute;
                left:0px;
                top:0px;
            }
            .div2{
                width:400px;
                height:300px;
                font-size:30px;
                font-weight:bold;
                color:#fff;
                background:#FF0000;
            }
        </style>
    </head>
    <body>
        <div class="center">
            <div class="div1"></div>
            <div class="div2">position:absolute定位测试</div>
        </div>
    </body>
</html>

=== 执行效果 ===
这里写图片描述

relative与absolute的配合

在网页的设计过程中经常会用浮动来对页面进行布局,但是浮动所带来的不确定因素非常多(例如:IE浏览器的兼容问题)。相对来说,在有些布局中定位使用会更加简单、快捷、兼容性更好(relative与absolute相结合来使用),如下面实例所示:

<!DOCTYPE HTML>
<html>
    <head>
    <meta charset="utf-8">
        <style type="text/css">
        div{
            border:2px red solid;
        }
        #box1{
            width:200px;
            height:200px;
            margin: 50px;
            background-color: #343434;
            position: relative;

        }
        #box2{
            width:99%;
            background-color: #676767;
              position: absolute;
            bottom: 0px;
        }
        </style>
    </head>
    <body>
        <div id="box1">
            <div id="box2">生活不止眼前的苟且,还有诗和远方的田野。</div>
        </div>
    </body>
</html>

=== 执行效果 ===
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值