position:

     定位,元素的定位与这五个属性相关。left,top,bottom,right,z-index

      1. static (默认值)。没有定位,五个属性都不起作用。

      2. inherit 继承父类定位,IE不支持

      3. relative 相对的,即相对于元素的正常位置,五个属性都起作用。

  <style type="text/css">
    .div1{
        padding:10px 0px;
        width:200px;
        height:50px;
        background-color:green;
        margin:5px;
    }
    .relativeTest{
        width:300px;
        position:relative;
        left:10px;
        top:-15px;
        background-color:red;
z-index:-1;
} </style> </head> <body> <div class="div1"> zhangsan </div> <div class="relativeTest">lisi</div> </body>

         加入position:relative ,属性left和top的值就会参照相对于第一个div的最下端位置偏移。当偏移top负值则向上出现于第一个div重叠的现象。

       这个时候就要设置 z-index:[数字],来设置上下关系。

        relative虽然位置移动了,但原先的位置还是保留的,下一个元素不会侵占此部分。

        4. fixed 即相对于屏幕的正常位置,五个属性都起作用。

           这个position:fixed;指明五个属性相对于浏览器屏幕的位置。不会随着文档的移动而移动。因是浮动到屏幕的,因此就没有父元素一说,因此width:100%就不起作用,变为inner-block.

        5. absolute 绝对定位 即相对于具有position为(absolute,relative,fixed的父级元素而言)的正常位置,五个属性都起作用。

            absolute的绝对,指从当前元素往上查找第一个带有position为(absolute,relative,fixed)的元素作为包裹元素进行定位,找不到则以html为包裹元素。

             因为有浮动性,因此width:100%将不起作用,以找到有position的父级元素为准。

       题外:  float:**;

          float是相对于包裹的父级block元素而言,内部元素失去block,变为一个挨着一个,根据排列规则是left还是right的浮动元素,失去原有的位置。

          后续的元素将占据当前元素的位置。因此需要通过clear:both,占据当前位置。

<style type="text/css">
    .flo{
        float:right;
        padding:5px;
    }

    .clear{
        clear:both;
    }
<style>

<div class="aaa">
        <div class="flo">1</div>
        <div class="flo">2</div>
        <div class="flo">3</div>
        <div class="flo">4</div>
        <div class="clear"></div>
</div>
<div>5666</div>

 

posted on 2018-03-09 14:38  zhaoqiang1980  阅读(147)  评论(0编辑  收藏  举报