position_css

时间:2022-11-09 06:01:31

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>

相关文章