CSS位置(一)---Position

Position:

absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

relative

生成相对定位的元素,相对于其正常位置进行定位。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

static 默认值。没有定位。
inherit 规定应该从父元素继承 position 属性的值。

 

 

 

 

 

 

1.relative,相对定位:

(1)单模块从原点位置相对移动,从原来的位置移动对应的距离:如下,父元素从原来的位置向上和向右移动了100rpx的距离。

  <view class='father'>
  <view class='bro'>大儿子</view>
  <view class='son'>二儿子</view>
  </view>
.father{
  background-color: yellow;
  width: 300rpx;
  height: 300rpx;
  margin-top: 100rpx;
  margin-left: 100rpx;
  position: relative;
}

  

(2)两个模块从相对位置进行移动:

两个模块从自己的相对位置进行移动,都是从之前自己原来的位置出发。

.bro{
  background-color: red;
  width: 100rpx;
  height: 100rpx;
 position: relative;
  top: 100rpx;
  right: 100rpx;
}
.son{
  background-color: blue;
  width: 100rpx;
  height: 100rpx;
  position: relative;
  top: 20rpx;
  left: 20rpx; 
}

  

2.绝对定位:相对于 static 定位以外的第一个父元素进行定位。

(1)如果大儿子变为绝对定位,那么二儿子的位置也会发生改变,变为从原点出发。

可以看到,当大儿子变为绝对定位后,二儿子的位置从原来的地点变为了父元素的起点位置,大儿子采用绝对定位后,覆盖在二儿子上面,绝对定位存在着层级的关系。

.bro{
  background-color: red;
  width: 100rpx;
  height: 100rpx;
 position: absolute;
}
.son{
  background-color: blue;
  width: 100rpx;
  height: 100rpx;
 
}

  

如果给二儿子加上一个绝对/相对定位,二儿子就会达到最上层:

.bro{
  background-color: red;
  width: 100rpx;
  height: 100rpx;
  position: absolute;
}
.son{
  background-color: blue;
  width: 100rpx;
  height: 100rpx;
  position: absolute;
}

  

也可以通过相对定位将二儿子和大儿子一起放出来:

.bro{
  background-color: red;
  width: 100rpx;
  height: 100rpx;
  position: absolute;
}
.son{
  background-color: blue;
  width: 100rpx;
  height: 100rpx;
  position: relative;
  top: 100rpx;
  left: 100rpx;
}

  

3.固定定位:生成绝对定位的元素,相对于浏览器窗口进行定位。

.bro{
  background-color: red;
  width: 100rpx;
  height: 100rpx;
  position: fixed;
  top: 10rpx;
  left: 10rpx;
}
.son{
  background-color: blue;
  width: 100rpx;
  height: 100rpx;
  position: relative;
  top: 100rpx;
  left: 100rpx;
}

  

 

  相对定位可以看作特殊的普通流定位,元素位置是相对于他在普通流中位置发生变化,而绝对定位使元素的位置与文档流无关,也不占据文档流空间,普通流中的元素布局就像绝对定位元素不存在一样。

  绝对定位的元素的位置是相对于距离他最近的非static祖先元素位置决定的。如果元素没有已定位的祖先元素,那么他的位置就相对于初始包含块儿(body或html神马的)元素。

因为绝对定位与文档流无关,所以绝对定位的元素可以覆盖页面上的其他元素,可以通过z-index属性控制叠放顺序,z-index越高,元素位置越靠上。

 

posted @ 2018-12-05 11:47  墨VS雪  阅读(975)  评论(0编辑  收藏  举报