定位

1 定位概述

CSS 定位 (Positioning) 属性允许你对元素进行定位

定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置

使用 display 属性改变生成的框的类型。将 display 属性设置为 block(块),可以让行内元素显示的像块级元素一样/*inline(内联)  inline-block(内联块)*/

position(位置) 属性值的含义:

static/*静态*/  元素框正常生成。

relative/*相对*/  元素框偏移某个距离。

absolute/*绝对*/  元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。

fixed/*固定*/  元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身

2 相对定位

对一个元素进行相对定位,它将出现在它所在的位置上,通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动

div {

  width: 200px;

  height: 200px;

  background-color: #766ac5;

  position: relative;

  top: 50px;

  left: 30px

}

运行效果:

定位_第1张图片

在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

3 绝对定位

设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

div {

  width: 200px;

  height: 200px;

  background-color: #766ac5;

  position: absolute;

  top: 50px;

  left: 30px

}

运行效果:

定位_第2张图片

绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块

因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置z-index  属性来控制这些框的堆放次序。

div {

  width: 200px;

  height: 200px;

  background-color: #766ac5;

  position: absolute;

  top: 50px;

  left: 30px;

  z-index: -1

}

运行效果:

定位_第3张图片

默认的 z-index 是 0。z-index -1 拥有更低的优先级。z-index 1 拥有更高的优先级。

4 浮动

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

div {

  width: 200px;

  height: 200px;

  background-color: #766ac5;

  float: left

}

运行效果:

定位_第4张图片

clear 属性规定元素的哪一侧不允许其他浮动元素。

div { clear: both }  /*清除两侧浮动*/

5,固定定位

div {

  width: 200px;

  height: 200px;

  background-color: #766ac5;

  position: fixed;

  top: 50px;

  left: 30px

}

运行效果:

定位_第5张图片

固定定位它的相对移动的坐标是视图(屏幕内的网页窗口)本身,不会随滑动条的滑动而改变所在视图中的位置

你可能感兴趣的:(定位)