zoukankan      html  css  js  c++  java
  • 绝对定位和相对定位的区别

    1.绝对定位

    position: absolute;绝对定位:绝对定位是相对于元素最近的已定位的祖先元素即是设置了绝对定位或者相对定位的祖先元素)。如果元素没有已定位的祖先元素,那么它的位置则是相对于最初的包含块(body)

    绝对定位与文档流无关,所以它们可以覆盖页面上其他的元素,可以通过z-index属性来控制这些层的对方顺序。

    特点:

    ★元素使用绝对定位之后不占据原来的位置(脱标)

    ★元素使用绝对定位,位置是从浏览器出发。

    ★嵌套的盒子,父盒子没有使用定位,子盒子绝对定位,子盒子位置是从浏览器出发

    ★嵌套的盒子,父盒子使用定位,子盒子绝对定位,子盒子位置是从父元素位置出发。

    ★给行内元素使用绝对定位之后,转换为行内块。(不推荐使用,推荐使用display:inline-block;)

    2.相对定位

    position: relative;相对定位:相对定位是相对于元素在文档中的初始位置

    特点:

    ★使用相对定位,位置从自身出发。

    ★还占据原来的位置。

    ★子绝父相(父元素相对定位,子元素绝对定位)

    ★行内元素使用相对定位不能转行内块

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

    注意:position:absolute,float会隐式地改变display的类型(display:none除外)。即是当元素设置position:absolute、float:left、float:right中任意一个时,都会让元素以display:inline-block的方式显示(特点是:可以设置长宽,默认宽度不占满父元素)。这时,即使故意设置display:inline; display:block都是无效的。

  • 相关阅读:
    利用Trace.WriteLine定位难以重现的问题
    技术经验分享
    辞职小记
    残阳如血--读《忆秦娥·娄山关》 有感
    一个简单多线程等待窗口
    [转]Control的Invoke和BeginInvoke
    elk 改为使用 ik 中文分词器
    在 jenkins 的 pipeline 中使用分支参数
    centos8 下删除网桥 docker0
    vscode 实现组件之间的跳转
  • 原文地址:https://www.cnblogs.com/ttty/p/10283821.html
Copyright © 2011-2022 走看看