您所在的位置:小祥子 » 编程 » CSS » 正文

css_position的相关用法

时间:2015-08-14 编辑:LWay 来源:CnBlogs

简介

position用于固定位置,是尤为重要的一个属性

其值可以为:

  • static: 默认值,忽略top, bottom, left, right 或者 z-index 声明
  • relative: 相对于该父级区域以及上一个子集区域的定位,用top, bottom, left, right来设定,可以使用Z-index
  • absobute: 相对于该父级区域的位置【左上角】的定位,用top, bottom, left, right来设定,可以使用z-index
  • fixed: 相对于浏览器的定位,忽略父级位置等的其他位置,可以使用Z-index
  • inherit: 继承父级position的属性

具体

 <style type="text/CSS">
 div
 {
 position:100px 100px;
 width:100px;
 height:100px;
 border:5px solid black;
 }
 div.pos_left
 {
 position:relative;
 left:-20px;
 border:5px solid green;
 }
 div.pos_right
 {
 position:relative;
 left:20px;
 border:5px solid green;
 }
 div.pos_ab
 {
 position:absolute;
 left:30px;
 top:50px;
 border:5px solid blue;
 }
 div.main
 {
 position:absolute;
 left:100px;
 top:50px;
 width:200px;
 height:300px;
 border:5px solid red;
 }
 div.pos_fix
 {
 position:fixed;
 left:10px;
 top:0px;
 clip:rect(0px 50px 200px 0px);
 }
 </style>
 </head>
 
 <body>
 <div class="main">
     <div>1.normal</div>
     <div class="pos_left">2.re-left:-20px</div>
     <div class="pos_right">3.re-left:20px</div>
     <div class="pos_ab">4.ab-(left:30px,top:50px)</div>
     <div class="pos_right">5.re-left:20px</div>
     <div class="pos_fix">6.fix-(left:30px,top:50px)</div>
 </div>


其中:

  • 【2】,【3】,【5】 为relative
当设定position: relative  则参照父级中上一个子元素的内容区的左上角为原始点结合TRBL属性进行定位。无父级则以BODY的左上角为原始点   ——必须注意的是,相对与上个子元素的左上角,并非图片上2对3显示的左上角而言,而是,若【2】为static,不进行TRBL变换位置时候的左上角。 ——即,relative的元素其即使进行TRBL变换,但是占有的区间还是原本的区间,因此会对其他元素覆盖。 较明显的显示: 将图中【2】: position:relative;
left:-20px;
top:-50px;   则:   图中包含【2】与【3】上下空白区域的一个区域为【2】真正占有的空间  
  • 【4】为absolute

当设定position: relative

则参照父级中左上角为原始点结合TRBL属性进行定位。无父级则以浏览器的左上角为原始点

同时我们由relative属性的【5】看出 —— 【5】是相对【3】的空间而言的

                                               —— absolute相当于直接覆盖而不占有真正的空间

  • 【4】为absolute

当设定position: relative —— 则以浏览器的左上角为原始点

此外

  • 只有当设定TRBL属性(TOP、RIGHT、BOTTOM、LEFT)时,relative,absolute,fixed才有效,不然将遵从正常的HTML布局规则,在前一个对象之后立即被呈递。 
  • 页面居中显示时一般不用absolute,因为放缩时,absolute会以浏览器的左上角为顶点,当然也可将其固定在一个父级区域中,固定宽度来解决
  • 【6】中所用到的 clip:rect(0px 50px 200px 0px); 可以对区域进行裁剪
  • z-index,可设置层数,高数值的元素总是会处于低数值元素的上面【只有position属性值为absolute、relative或fixed时才有效】
     
关键词:相关 用法