css中的绝对定位与相对定位

position:relative

元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

position:absolute

元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不

存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框.

这是对二者的定义,其实绝对定位还是比较好理解,定义某个标签的属性为绝对定位后,位置的改变都是相对于原来的位置进行的,仍然位于文档流中。

其实例如下:

 https://www.w3school.com.cn/tiy/t.asp?f=csse_position_relative

而对绝对定位来说,定义这个属性后,内容就脱离文档流了,如果正常文档流中一个位置有东西,那我用绝对定位后,还在这个位置可以再添加元素,这个元素并不在文档流中,而相对定位则不可以,它会把元素往后排。

针对在我进行网页设计的时候遇到过的问题,对于一个div或者其他块来说,尽量不要把其中的html元素有的不定义这个属性,有点定义,这样在你设计排版的时候很容易乱掉的。

还有就我在写html文档的时候,想对网页进行自适应的修改,当我改变浏览器窗口大小的时候,没处理好这个问题就导致了网页元素乱掉。要注意对于绝对定位的元素,其大小和位置的参照是上一级的父元素,

这一点很重要,父元素间不能搞混了,不然很容易出错。具体代码解释可看下面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
     body{
            background-color: yellow;
        }

div{ position: absolute; width: 20%; height: 20%; left: 30%; background-color: black; } p{ position: absolute; left: 30%; width: 20%; height: 20%; background-color:white; } </style> </head> <body> <div class="a"> <p class="b"></p> </div> </body> </html>

效果是这样的:

最后提供一位网友的文章,讲的很好很透彻。

https://www.jianshu.com/p/a3da5e27d22b

原文地址:https://www.cnblogs.com/xiaxiaopi/p/12331930.html