前端小知识包含块

124 阅读2分钟

我们以前应用布局的时候,经常会参考父元素,因此写文章很多基本上也会提到相对于父元素,实际上很多我们眼中的父元素,其更精确的概念应该是包含块,因为单纯的父元素他不精确,例如有些定位元素,就不是明显的父子关系了

包含块确定规则

  • 常规元素和浮动元素父元素的内容盒
  • 绝对定位 absolute: 第一个定位祖先的填充盒(padding + content)
  • 固定定位 fixed:
    • 无变形祖先-往上找找不到使用了 transform 的父元素,其就是包含块就是视口
    • 有变形祖先-包含块有的祖先使用了 transform,就是变形祖先,包含块就是变形祖先

ps:看了fixed 这些是不是感觉天塌了,以前学的定位不太准了,实际上不是的,只是我们接触到得更深了,也能避免更多问题了,下面的 fixed 变形祖先实际上平时根本接触不到,因此按照以前总结也没啥问题,就当牛顿和爱因斯坦理论在合适的地方使用就好了,碰到了我们也知道咋回事就行了

更新一下我们的知识点,父元素换成包含块就正确了,否则全是不准确的哈

  • 元素的 width 百分比相对的是 父元素 包含块 宽度
  • 元素的 height 百分比相对的是 父元素 包含块 高度
  • 元素的 margin 百分比相对的是 父元素 包含块 宽度
  • 元素的 padding 百分比相对的是 父元素 包含块 宽度
  • 元素的 left 百分比相对的是 父元素 包含块 左边缘
  • 元素的 top 百分比相对的是 父元素 包含块 右边缘