zoukankan      html  css  js  c++  java
  • 浅谈css中的absolute和relative

    position:absolute和position:relative是两个html中常用到的样式,前者是绝对定位,定位基于最近的一个已经定位的祖先元素,如果没有找到,就基于根元素<html>进行定位,后者是相对定位,基于自身的位置进行偏移。

    下面用几个简单的例子看看。

    定义4个div。

    <style>
        div {
            height:100px;
            border:1px solid #999;
        }
        #div1{
            background-color:yellow;
        }
        #div2{
            background-color:orange;
        }
        #div3 {
            background-color:skyblue;
        }
        #div4 {
            background-color:lightgray;
        }
        
    </style>
    <body>
            <div id="div1">第一个div</div>
            <div id="div2">第二个div</div>
            <div id="div3">第三个div</div>
            <div id="div4">第四个div</div>
    </body>
    View Code

     把第3个div设置成absolute,但是不设置left和top值。可以发现:

    1.div3宽度由元素中的内容决定了

    2.div4上移到第三个div的位置,被第3个div所覆盖了

    3.div3在设置绝对定位以后,并没有基于<html>根元素偏移。

    总结下我的个人理解:

    1.设置了absolute的元素宽度是由内容决定的,relative元素的宽度的则是取决于父元素的宽度

    2.如果设置了absolute属性,元素会让出原来的位置,处于另外一个层级。

    3.在没有设置left,top等值的时候,虽然div已经有了absolute元素的特性,但是还会保持在之前的位置,尽管已经处在不同的层级,这时候如果我们设置left和top都为0,就会基于最近的定位了的父元素进行偏移,在这个例子中,div3就会偏移到左上角的位置。

    #div3 {
            background-color:skyblue;
            position:absolute;
        }

    接下来在div3中加入一个div5

     1 <style>
     2     div {
     3         height:100px;
     4         width:200px;
     5         border:1px solid #999;
     6     }
     7     #div1{
     8         background-color:yellow;
     9     }
    10     #div2{
    11         background-color:orange;
    12     }
    13     #div3 {
    14         background-color:skyblue;
    15         position:absolute;
    16     }
    17     #div4 {
    18         background-color:lightgray;
    19     }
    20     #div5 {
    21         width:100px;
    22         height:50px;
    23         background-color:red;
    24         
    25     }
    26     
    27 </style>
    28 <body>
    29         <div id="div1">第一个div</div>
    30         <div id="div2">第二个div</div>
    31         <div id="div3">
    32             第三个div
    33             <div id="div5">
    34                 第五个div
    35             </div>
    36         </div>
    37         <div id="div4">第四个div</div>
    38 </body>
    View Code

     div4藏到了div3下面。

    给div5设置absolute属性,添加left:50px,top:0px;

     如果设置relative,top:0px,left:50px;

        #div5 {
            100px;
            height:50px;
            background-color:red;
            position:relative;
            left:50px;
            top:0px;
        }

     以上就是我对relative和absolute的一些简单总结了。

  • 相关阅读:
    Python解释器相关知识
    简单了解下Flask
    Scoket编程
    __file__的作用
    jquery编写可折叠列表
    浑浑噩噩的一天
    js实现杨辉三角
    js闭包
    python读取word表格
    HTMLTestRunner报告
  • 原文地址:https://www.cnblogs.com/blogforvi/p/11595858.html
Copyright © 2011-2022 走看看