任何人都能告诉我style =“position:absolute”和style =“position:relative”之间的区别,以及它们在我将它添加到div / span / input元素时的区别?
我现在使用绝对,但我想探索相对。这将如何改变定位?
解决方法
绝对定位意味着元素完全脱离页面布局的正常流动。就页面上的其余元素而言,绝对定位的元素根本不存在。然后,使用左,右,顶部和底部属性,在您指定的位置单独绘制元素本身,排序在其他一切的“顶部”。
使用您使用这些属性指定的位置,元素然后放置在其最后一个祖先元素中的该位置,该元素具有除静态之外的任何位置属性(静态是定位元素在没有指定位置属性时使用),或者文档主体(浏览器视口)(如果不存在这样的祖先)。
例如,如果我有这样的代码:
<body> <div style="position:absolute; left: 20px; top: 20px;"></div> </body>
… then< div>将位于距浏览器视口顶部20像素,距离左边缘20像素。
但是,如果我做了这样的事情:
<div id="outer" style="position:relative"> <div id="inner" style="position:absolute; left: 20px; top: 20px;"></div> </div>
…然后内部div将位于距离外部div的顶部20px,和从左边缘的20px相同,因为外部div不定位与position:static,因为我们明确设置为使用位置:相对。
相对定位,另一方面,就像没有定位,但左,右,顶部和底部属性“微调”元素的正常布局。页面上的其余元素仍然被布置,好像元素在正常的位置。
例如,如果我有这样的代码:
<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的右边5px。 Span1和Span3将位于与他们在第一个例子中完全相同的地方,在Span2的右侧和Span3的左侧之间留下5px的间隙。
希望澄清的东西有点。