哦,填充百分比是基于父元素的宽度

Avatar of Chris Coyier
Chris Coyier on

DigitalOcean 为您的旅程的每个阶段提供云产品。立即开始使用 200 美元的免费积分!

我今天了解到关于基于百分比 (%) padding 的一些内容,但我一直都搞错了!我一直以为百分比填充是基于元素本身。因此,如果一个元素的宽度为 1000 像素,并且 padding-top: 50%,那么该填充值为 500 像素。根据宽度来设置顶部填充很奇怪,但这就是它的工作方式——但只是 有点。50% 是基于 父元素的宽度,而不是元素本身。这就是让我感到困惑的部分。

我唯一使用过百分比填充的地方是用来做 纵横比盒子 技巧。元素的宽度是流动的,但您想要保持纵横比,因此需要使用百分比填充技巧。在这种情况下,元素的宽度就是父元素的宽度,所以我的错误的思维模型从来没起作用过。

要证明这一点并不难

查看 Pen
% 填充是基于父元素,而不是元素本身
by Chris Coyier (@chriscoyier)
on CodePen.

感谢 Cameron Clark 发送关于此内容的电子邮件

当您有一个完全扩展到填满其父元素宽度的块元素时,这种差异是无关紧要的,就像本文中使用的所有示例一样。但是,当您在元素上设置任何其他宽度(而不是 100%)时,这种误解会导致令人费解的结果。

他们指出了 Aayush Arora 撰写的 这篇文章,这篇文章声称只有 1% 的开发人员知道这一点。