relative和absolute理解

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>position:relative定位</title>
<style type="text/css">
    html,body,div{
                    margin:0;
                    padding:0;
                    list-style:none;
    }
    .center{
                margin:50px;
                border:#999999 solid 10px;
                width:400px;
                height:300px;
                background:yellow;
    }
    .div1{
            width:200px;
            height:150px;
            background:blue;

            position:relative;
            top:-20px;
            left:0px;
    }
    .div2{
            width:400px;
            height:150px;
            font-size:30px;
            font-weight:bold;
            color:#fff;
            background:red;
    }

</style>
</head>

<body>
    <div class="center">
        <div class="div1"></div>
        <div class="div2">position:relative定位测试</div>
    </div>
</body>
</html>
relative是相对的意思,顾名思义就是相对于元素本身在文档中应该出现的位置来移动这个元素,可以通过TRBL来移动元素的位置,实际上该元素依然占据文档中原有的位置,只是视觉上相对原来的位置有移动。具体案例如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>position:absolute定位</title>
<style type="text/css">
    html,body,div{
                    margin:0;
                    padding:0;
                    list-style:none;
    }
    .center{
                margin:50px;
                border:#999999 solid 10px;
                width:400px;
                height:300px;
                background:yellow;
    }
    .div1{
            width:200px;
            height:200px;
            background:blue;
            /*设定TRBL*/
            position:absolute;
            left:0px;
            top:0px;

    }
    .div2{
            width:400px;
            height:300px;
            font-size:30px;
            font-weight:bold;
            color:#fff;
            background:red;
    }

</style>
</head>

<body>
    <div class="center">
        <div class="div1"></div>
        <div class="div2">position:absolute定位测试</div>
    </div>
</body>
</html>
    /*
    absolute是生成觉对定位的元素,脱离了文本流(即在文档中已经不占据位置),参照浏览器的左上角通过top,right,bottom,left(简称TRBL) 定位。    可以选取具有定位的父级对象(下文将说到relative与absolute的结合使用)或者body坐标原点进行定位,也可以通过z-index进行层次分级。    absolute在没有设定TRBL值时是根据父级对象的坐标作为始点的,当设定TRBL值后则根据浏览器的左上角作为原始点
    这是设定TRBL之后的效果(设置TRBL以浏览器左上角为原点),当没有设置TRBL时(没有设置TRBL是以父级对象的坐标为原点),即将div1改成如下代码时
    */

总结:简单的讲,relative未脱离文档流,当设置TRBL时,只是相对原始位置进行位移。而absolute表示绝对定位,完全脱离文档流,当设置TRBL时,只是相对于绝对位置(参照浏览器)进行位移。当没有设置TRBL时,只是相对于负级对象的坐标原点进行margin和padding位移。
时间: 2024-11-08 19:18:12

relative和absolute理解的相关文章

关于通过jquery来理解position的relative及absolute

一个多月前刚刚开始系统接触Javascript/css/html的时候一直对position属性的relative及absolute不是很了解.今天在接触jquery中无意间发现通过slideToggle() 的滑动效果可以更加方便清楚的了解position属性的含义.下面是代码. <!DOCTYPE html><html><head><script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.

relative和absolute的效果

我对这样几个效果不是特别理解: 1.float的效果: 就是搞不清楚我想要什么效果的时候可以将某个标签设置为float,一直没总结出什么规律. 2.relative和absolute的效果: 也是不清楚在什么情况下我们设置为relative,在想要什么效果的时候应该选择absolute,还劳烦您帮忙解惑 float在需要将2个在不同行的元素显示在同一行时使用,它可以设定元素是居左还是居右 relative和absolute是在设定元素相对定位时使用 比如A和B元素, A在外面,B在里面 那么B就

定位以及relative和absolute的结合

三种定位 1. static 默认定位,基于文档流 (left,right,top,bottom,z-index对他没用) 2. relative 相对定位,这个元素基于原来的位置可以用l-r-t-b 来移动,原来的位置依然站着 3. absolute 绝对定位 ,脱离文档流 relative和absolute的结合 (原文:http://www.barelyfitz.com/screencast/html-training/css/positioning/) HTML Markup 1 2 3

[转载]position的四个属性值: relative ,absolute ,fixed,static

position的四个属性值: relative ,absolute ,fixed,static  下面分别讲述这四个属性,以简单代码表示 <div id="parent">     <div id="sub1">sub1</id>     <div id="sub2">sub2</id></div> 1. relative relative属性相对比较简单,我们要搞清它是相

position的四个属性值: relative ,absolute ,fixed,static

position的四个属性值: relative ,absolute ,fixed,static  下面分别讲述这四个属性,以简单代码表示 <div id="parent">     <div id="sub1">sub1</id>     <div id="sub2">sub2</id></div> 1. relative relative属性相对比较简单,我们要搞清它是相

布局模型 之 层模型(position的relative、absolute与fixed区别?)

css的布局模型分为流动模型(Flow).浮动模型(Float).层模型(Layer). 浮动模型(Float)和层模型(Layer)有什么显著区别?     浮动模型(Float):浮动是让某元素脱离文档流的限制,在浮动框之前和之后的非定位元素会当它不存在一样,可能沿着它的另一侧垂直流动:浮动的元素仍然会占据文档流的物理空间.关于浮动模型的详细说明请看另一篇文章的介绍.http://ycgit.blog.51cto.com/8590215/1958452 层模型(Layer):设置为层模型的元

CSS关于定位float、static、relative、absolute、fixed

html的对象是按照文档流的方式,从上而下,从左往右的布置对象/元素. static: 元素默认的定位方式,遵从基本的html布置规则 relative:相对定位,相对哪个对象呢? 相对的是元素本身的位置 <div class="div5"></div> <div class="div7"></div> <style>     div{         width:300px;         height

relative、absolute和float

relative.absolute和float position:relative和position:absolute都可以改变元素在文档中的位置,都能激活元素的left.top.right.bottom和z-index属性.(默认这些属性未激活,设置了也无效) 设置position:relative和position:absolute都会让元素浮起来,会改变正常情况下的文档流. 不同: position:relative会保留自己在z-index:0层的占位,left.top.right.bo

css之relative和absolute

relative限制定位 相对定位限制绝对定位left等属性. relative限制z-index层级 设置两个用绝对定位的div,分别为z-index:1的div1和z-index:2的div2,那么层级div2大于div1.如果用相对定位的div分别为z-index:4的div4和z-index:3的div3,div4为div1的父类,div3为div2的父类,则div1的层级大于div2,可以得出,此时的绝对定位不起作用,相对定位限制了绝对定位.但如果div3的z-index :auto;