我们以前应用布局的时候,经常会参考父元素,因此写文章很多基本上也会提到相对于父元素,实际上很多我们眼中的父元素,其更精确的概念应该是包含块,因为单纯的父元素他不精确,例如有些定位元素,就不是明显的父子关系了
包含块确定规则
- 常规元素和浮动元素父元素的内容盒
- 绝对定位 absolute: 第一个定位祖先的填充盒(padding + content)
- 固定定位 fixed:
- 无变形祖先-往上找找不到使用了 transform 的父元素,其就是包含块就是视口
- 有变形祖先-包含块有的祖先使用了 transform,就是变形祖先,包含块就是变形祖先
ps:看了fixed 这些是不是感觉天塌了,以前学的定位不太准了,实际上不是的,只是我们接触到得更深了,也能避免更多问题了,下面的 fixed 变形祖先实际上平时根本接触不到,因此按照以前总结也没啥问题,就当牛顿和爱因斯坦理论在合适的地方使用就好了,碰到了我们也知道咋回事就行了
更新一下我们的知识点,父元素换成包含块就正确了,否则全是不准确的哈
- 元素的
width百分比相对的是父元素包含块宽度 - 元素的
height百分比相对的是父元素包含块高度 - 元素的
margin百分比相对的是父元素包含块宽度 - 元素的
padding百分比相对的是父元素包含块宽度 - 元素的
left百分比相对的是父元素包含块左边缘 - 元素的
top百分比相对的是父元素包含块右边缘