2
padding:45px 65px 95px;

Why is it that the shorthand above would set the LEFT padding to 65px when a value for the left padding was not even given?

This is a little confusing to me.

4

6 回答 6

8

这确实令人困惑,但这只是 CSS 的作品。如果您指定 1 个值,它将用于所有四个边。如果您指定两个,第一个将是top/bottom填充,第二个将是left/right. 因此,当指定三个时,它会top, left/right, bottom与仅提供两个值时的用法相呼应。

于 2012-06-04T14:48:36.830 回答
5

顺序为:上、右、下、左

想想TRBL(麻烦)。或顺时针。

使用速记时,如果没有给出,则使用对方的值。在您的情况下,使用65pxfor left65pxfrom right

更进一步,如果我有:

padding: 10px 20px;

10px将导致顶部底部以及20px右侧和左侧。

最后:

padding: 10px;

将导致所有内容均为 10px。

于 2012-06-04T14:47:31.067 回答
4

速记符号总是从它们相反的值中复制缺失的元素。

padding: top right bottom left; 
padding: top right; // bottom = top, left = right
padding: top right bottom; // left = right
于 2012-06-04T14:52:17.080 回答
0

实际上顺序是上、右、下、左。如果只给出两个值,则顶部和底部和左右将采用相同的值。因为你给了 65px 到右边,所以左边也一样。

于 2012-06-04T14:49:44.903 回答
-3

这是简写​​符号,通常您只提供 2 个参数,而不是 3 个参数,例如:

margin: 0 auto;

这意味着顶部和底部为 0,左右为自动。

于 2012-06-04T14:47:48.903 回答
-3

顺序是上、右、下、左。当您省略一个数字时,它会选择相反的值:

x = t=x, r=x, b=x, l=x
x,y = t=x, r=y, b=x, l=y
x,y,z = t=x, r=y, b=z, l=y
于 2012-06-04T14:48:30.123 回答