p { position: relative; top: 10px; }
对于上面的CSS代码,大家想要把段落向下移动10个像素,于是大家用了相对定位并设置top属性为10px。但是,这并没有把文本元素从原本的位置移走,而是在新的位置上留下了一个空洞。这说明,使用相对定位确实会改变文档流中元素的位置,只不过它不会使其他元素移动。
相对定位时,浏览器会为元素留出原来位置的空白,并在其后面展开其他元素。这种行为的原因可以从相对定位沿X、Y两轴分别移动元素的方式中得到解释。在上例中,段落元素以相对于其自身位置下移10像素,但它原本的位置仍然会被内容占用,在其后面的文档流中没有产生任何改变。
另外,它还有一个重要的副作用:通过使用相对定位,元素的动画效果可能会显得不那么平滑,因为其他元素不能自然地滑动到原来的位置。这就是为什么大家必须谨慎地使用相对定位,并确保它与大家的设计目标相符。
综上所述,虽然相对定位在很多情况下非常有用,但不能被视为是一种创造出不影响文档流的设计选择。大家需要理解相对定位的本质,并只在需要时使用它,在确保不影响用户体验的前提下,顾及到网页的整体布局。