position: relative
和position: absolute
CSS 和有什么不一样?那你什么时候应该使用呢?
CSS绝对定位
position: absolute;
绝对定位是最容易理解的。您从CSS position
属性开始:
position: absolute;
这告诉浏览器应将要定位的所有内容从文档的正常流程中删除,并将其放置在页面上的确切位置。它不会影响HTML中它之前或之后的元素在网页上的放置方式,但是除非您重写它,否则
它将 取决于其父级的位置。
如果你想一个元素从文档窗口的顶部10个像素的位置,你会使用top
偏移position
与它有absolute
定位:
position: absolute;
top: 10px;
然后10px
,无论元素(在视觉上还是通过)在元素的上方,下方或上方经过什么内容,该元素都将始终从页面顶部显示。
四个定位属性是:
top
right
bottom
left
要使用它们,您需要将它们视为偏移属性。换句话说,定位的元素right: 2px
不会向右移动2px
。它的右侧从窗口的右侧(或其上级覆盖父窗口)偏移2px
。其他三个也是如此。
相对定位
position: relative;
相对定位使用与定位相同的四个定位属性absolute
。但是,不是将元素的位置基于浏览器查看端口,而是从元素仍处于正常 流中的位置开始 。
例如,如果您的网页上有三个段落,而第三个段落上position: relative
放置了样式,则其位置将根据其当前位置而不是从视口的原始侧面偏移。
第1段
第2段
第3段。在上面的示例中,第三段将位于3em
容器元素的左侧,但仍将位于前两段的下方。它会保留在文档的正常流程中,并且会稍有偏移。如果将其更改为position: absolute;
,则其后的所有内容都将显示在其顶部,因为它将不再属于文档的正常流程。
笔记:
默认width
的是绝对定位的元素的是在其中的内容的宽度,不同于被相对定位在那里它的默认的元素width
是100%
该空间也可以填充的。
您可以使元素与绝对定位的元素重叠,而不能对相对定位的元素进行重叠(本机,即不使用负边距/定位)
问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。
问题内容: 我有3个要素。 第一个更大(包装)并具有 第2个相对于第1个相对位置绝对定位(并包含在第1个中) 第3个包含在第2个中,并且也具有绝对定位。 为什么第3个位置相对于第2个绝对位置(这也是第1个位置的绝对位置)而不是相对位置的第一个位置? 因为3rd 是绝对定位到2nd的绝对定位。 问题答案: 因为就像重置孩子的相对位置一样。 这是无法解决的-如果您希望第三个相对于第一个绝对定位,则必须
问题内容: 根据W3Schools: 相对定位的元素通常用作绝对定位元素的容器块。 为什么是这样?有没有很好的例子? 问题答案: 一个很好的例子是当您想将某些内容放置到页面上或相对于容器/ div放置时。 这向您显示,如果绝对div不在“相对” div内,则内容将与文档主体对齐。 请注意,绿色div()的div内部()的对齐方式为的上/右对齐。 蓝色框()具有与绿色框()完全相同的HTML布局,但
我在另一个div中有两个div,我想使用CSS将一个子div放置在父div的右上方,另一个子div放置在父div的底部。例如,我想对两个子div使用绝对定位,但是相对于父div而不是页面定位它们。我怎么能这么做? HTML示例:
我在iText7中添加一个相对于页面大小具有绝对位置的图像有一个问题。 在itext5中,我使用了下面的代码来确定图像相对于要将其添加到的页面的位置 现在,对于itext7,我正在使用
问题内容: 谁能告诉我和之间的区别,以及 在我将其添加到/ / 元素时它们之间的区别是什么? 我现在正在使用,但是我也想探索。这将如何改变定位? 问题答案: 绝对定位是指元素完全从页面布局的正常流程中移出。就页面上的其余元素而言,绝对定位的元素根本不存在。然后,在您使用属性指定的位置,元素本身被单独绘制,在所有其他内容的“顶部” 。 使用您使用这些属性指定的位置,该元素将被放置在其最后一个祖先元素