当前位置: 首页 > 面试题库 >

样式=“位置:绝对”和样式=“位置:相对”之间的区别

贺福
2023-03-14
问题内容

谁能告诉我和之间的区别,style = "position:absolute"以及style = "position:relative"
在我将其添加到div/ span/ input元素时它们之间的区别是什么?

我现在正在使用absolute,但是我也想探索relative。这将如何改变定位?


问题答案:

绝对定位是指元素完全从页面布局的正常流程中移出。就页面上的其余元素而言,绝对定位的元素根本不存在。然后,在您使用left, right, top and bottom属性指定的位置,元素本身被单独绘制,在所有其他内容的“顶部” 。

使用您使用这些属性指定的位置,该元素将被放置在其最后一个祖先元素中的那个位置,该元素的位置属性不是static((未指定位置属性时的页面元素默认为静态))或文档正文(浏览器)视口)(如果不存在这样的祖先)。

例如,如果我有以下代码:

<body>
  <div style="position:absolute; left: 20px; top: 20px;"></div>
</body>

<div>应位于距浏览器视口顶部20px处,距浏览器左边缘20px处。

但是,如果我做了这样的事情:

 <div id="outer" style="position:relative">
   <div id="inner" style="position:absolute; left: 20px; top: 20px;"></div>
 </div>

…然后将innerdiv从outerdiv 的顶部定位20px,从其顶部向左定位20px
,因为outerdiv的定位位置不是position:static因为我们已将其明确设置为use position:relative

另一方面,相对定位就像根本不声明任何定位一样,但是left, right, top and bottom属性将元素“推”出了其正常布局。页面上的其余元素仍然会布局,就像该元素位于其正常位置一样。

例如,如果我有以下代码:

<span>Span1</span>
<span>Span2</span>
<span>Span3</span>

…然后这三个<span>元素将彼此相邻而不会重叠。

如果我将第二个设置<span>为使用相对定位,如下所示:

<span>Span1</span>
<span style="position: relative; left: -5px;">Span2</span>
<span>Span3</span>

…那么Span2将与Span1的右侧重叠5像素。Span1和Span3与第一个示例位于完全相同的位置,在Span2的右侧和Span3的左侧之间留有5px的间隙。

希望这能使事情澄清一点。



 类似资料:
  • 问题内容: 和CSS 和有什么不一样?那你什么时候应该使用呢? 问题答案: CSS绝对定位 绝对定位是最容易理解的。您从CSS 属性开始: 这告诉浏览器应将要定位的所有内容从文档的正常流程中删除,并将其放置在页面上的确切位置。它不会影响HTML中它之前或之后的元素在网页上的放置方式,但是除非您重写它,否则 它将 取决于其父级的位置。 如果你想一个元素从文档窗口的顶部10个像素的位置,你会使用偏移与

  • 问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。

  • 问题内容: 我有3个要素。 第一个更大(包装)并具有 第2个相对于第1个相对位置绝对定位(并包含在第1个中) 第3个包含在第2个中,并且也具有绝对定位。 为什么第3个位置相对于第2个绝对位置(这也是第1个位置的绝对位置)而不是相对位置的第一个位置? 因为3rd 是绝对定位到2nd的绝对定位。 问题答案: 因为就像重置孩子的相对位置一样。 这是无法解决的-如果您希望第三个相对于第一个绝对定位,则必须

  • 问题内容: 我知道什么是绝对位置和相对位置,但是我仍然不清楚一些要点。以供参考 CSS: 的HTML: 现在的要点是: 相对div自动采用100%宽度,但绝对div仅采用内容宽度。为什么? 当我给高度100%时,相对div无效,但绝对div的高度为100%。为什么? 当我给margin-top:30px时,它也偏移绝对div,但是当我给top:30px时,则只有相对div偏移。为什么? 当我不给绝

  • 我在另一个div中有两个div,我想使用CSS将一个子div放置在父div的右上方,另一个子div放置在父div的底部。例如,我想对两个子div使用绝对定位,但是相对于父div而不是页面定位它们。我怎么能这么做? HTML示例:

  • 我在iText7中添加一个相对于页面大小具有绝对位置的图像有一个问题。 在itext5中,我使用了下面的代码来确定图像相对于要将其添加到的页面的位置 现在,对于itext7,我正在使用