css 子元素相对父元素进行定位

解决方案

  • 【css 子元素相对父元素进行定位】代码及效果
    css 子元素相对父元素进行定位
    文章图片

  • 原理
    • 浏览器渲染 html,是有文档流的说法的,块级元素换行渲染,行内元素行内渲染,在这里,两个 div 都是块级元素,一个父,一个子,正常来说的渲染结果是父元素在浏览器左上角,子元素在父元素的左上角。如果我们要对子元素相对父元素进行定位,就要用到 position 属性。
      属性值 描述
      absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
      relative 生成相对定位的元素,相对于其正常位置进行定位。
    • 我们知道,要使用相对于父元素的定位,肯定要使用 absolute,为什么直接使用 absolute 不起作用?因为使用 absolute 相对于父元素定位,对父元素有一个要求,就是父元素的 position 不能是 static,如果父元素的 position 是 static 那么就继续向上查找元素,直到找不 position 不为 static 的元素,对这个元素进行相对定位,所以,需要将父元素的 position 设置为 relative,这样做是没有影响的,因为,relative 只是相对于正常位置进行定位,正常位置就是所谓的文档流默认的输出位置,如果我们设置了 position 为 relative 而不设置偏移量 x,y,那就相当于父元素的位置是没有变动的。

    推荐阅读