简介
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的属性
具体
1 <style type="text/css"> 2 div 3 { 4 position:100px 100px; 5 width:100px; 6 height:100px; 7 border:5px solid black; 8 } 9 div.pos_left 10 { 11 position:relative; 12 left:-20px; 13 border:5px solid green; 14 } 15 div.pos_right 16 { 17 position:relative; 18 left:20px; 19 border:5px solid green; 20 } 21 div.pos_ab 22 { 23 position:absolute; 24 left:30px; 25 top:50px; 26 border:5px solid blue; 27 } 28 div.main 29 { 30 position:absolute; 31 left:100px; 32 top:50px; 33 width:200px; 34 height:300px; 35 border:5px solid red; 36 } 37 div.pos_fix 38 { 39 position:fixed; 40 left:10px; 41 top:0px; 42 clip:rect(0px 50px 200px 0px); 43 } 44 </style> 45 </head> 46 47 <body> 48 <div class="main"> 49 <div>1.normal</div> 50 <div class="pos_left">2.re-left:-20px</div> 51 <div class="pos_right">3.re-left:20px</div> 52 <div class="pos_ab">4.ab-(left:30px,top:50px)</div> 53 <div class="pos_right">5.re-left:20px</div> 54 <div class="pos_fix">6.fix-(left:30px,top:50px)</div> 55 </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时才有效】
时间: 2024-12-19 17:37:32