【发布时间】:2017-06-21 09:04:55
【问题描述】:
据我了解,使用box-sizing:content-box 以百分比设置元素的填充和边距时,这些将是实际内容区域宽度的百分比。因此,300px 宽图像的 50% 边距,与其填充没有任何关系,将创建 150px 宽边距,因此实际大小为 450px 宽度(+填充)。
现在,当我使用box-sizing:border-box 时,宽度定义为内容+填充+边框。如果我使用百分比在边框框中设置元素的填充,它是否会引用这种不同的宽度定义,从而引用自身?如果不是,它仅指内容的宽度,在这种情况下,内容宽度本身也取决于填充和边框的宽度(内容宽度=(边框框宽度)-边框填充),因此在padding 将引用较小的内容,从而使填充本身再次变小。我理解对了吗?这似乎在这两种情况下填充都会以我自己为基础。我错过了什么?浏览器以什么顺序计算百分比,基于什么(仅内容或实际宽度)?
非常感谢!
【问题讨论】:
-
vertical 和水平边距或填充使用父级的宽度作为参考(如果创建 BFC,伪将使用其相关容器)。 box-sizing 无关紧要 w3.org/TR/CSS21/box.html#margin-properties , w3.org/TR/CSS21/box.html#padding-properties 和一些关于 box-sizing 的信息,您可能想阅读 w3.org/TR/2002/WD-css3-box-20021024/#the-box-width
-
所以如果我使用内容框缩小图像,它会扩大填充和边距。如果我使用边框框做同样的事情,它会使填充与图像一起变小并且边距变大?还要感谢你们俩。事实上,margin 和 padding 使用的是父元素的百分比,而不是元素本身的百分比,这一切都清楚了。我的消息来源并不准确。
标签: css padding percentage