CSS定位

CSS定位

定位

定位概况

CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。

定位属性

  • position 规定元素的定位类型

position 属性4 种不同类型的定位

  1. static
    元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
    2)relative
    相对其之前的位置进行定位(偏移);元素保持原有的形状,它原本所占的空间仍保留。
    3)absolute
    元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
    4)fixed
    元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
    提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置进行定位。
  • top/bottom/left/right
    用于定义元素框的偏移位置
  • z-index
    设置元素的堆叠顺序

四种定位类型

  • 1)普通流定位position:static
    普通流中元素的位置由元素在 HTML 中的位置决定。
    块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
    行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。

  • 2)相对定位position:relative
    设置为相对定位的元素框会偏移某个距离。(相对之前位置的偏移)
    元素仍然保持其未定位前的形状,它原本所占的空间仍保留
    注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

  • 3)绝对定位position:absolute
    设置为绝对定位的元素框从文档流完全删除,因此不占据空间。
    绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
    相对定位是“相对于”元素在文档中的初始位置定位,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块进行定位。

  • 4)固定定位position:fixed
    生成绝对定位的元素,相对于浏览器窗口进行定位。
    将元素的内容固定在页面中的某个位置,元素从普通文档流中完全移除,不占用页面空间,当用户向下滑动页面元素框时并不随着移动。

  • 堆叠顺序

一旦修改了元素的定位方式,则元素可能会发生堆叠,可以使用z-index属性(层级)来控制元素框出现重叠的顺序
值越大表示堆叠越高,离用户越近
可以设置负值,表示离用户更远

浮动

浮动定位是将元素排除在普通文档流之外,元素将不占用空间;
浮动的框可以向左或向右移动,直到它的外边碰到包含框或者另一个浮动框为止;
浮动元素的外边缘不会超出其父元素的内边缘,浮动的元素不会互相重叠,浮动元素也不会上下浮动。

绝对定位与浮动的区别
浮动元素的影响
8种CSS清除浮动的方法优缺点分析

原文地址:https://www.cnblogs.com/feiyu6/p/7194036.html