为什么margin: 0 auto;
有效但margin: 1 auto;
没有?是否有一些简单的解决方法?
.container {
width: 220px;
/* margin: 0 auto; */ /* <-- works.*/
margin: 1 auto; /*<-- error. HOW TO FIX??? */
padding: 16px;
display: block;
border: 2px solid black;
}
<div class="container">
<p style="text-align: center;">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint non cumque at minima voluptates totam suscipit, esse vitae recusandae fugit, alias quibusdam odio sunt iure velit, perferendis voluptas ratione quo!</p>
</div>
抱歉愚蠢的问题 UPD:我确信这个答案对有类似麻烦的搜索者有用,请不要删除。
答案 0 :(得分:4)
因为0是通用的,1然而取决于单位,并且由于没有指定单位,浏览器不知道该怎么做。
答案 1 :(得分:1)
因为margin-*
属性只接受长度,百分比和auto
。不是整数。
本节中定义的属性引用
<margin-width>
值类型,可以采用以下值之一:
<length>
:指定固定宽度。<percentage>
:百分比是根据计算得出的 包含块的生成框的宽度。auto
然后,0
有效,因为它是有效的length,但1
不是。
长度值的格式(在此表示为
<length>
规范)是<number>
(带或不带小数点) 紧接着是单元标识符(例如,px,em等)。后 零长度,单位标识符是可选的。
如果您添加了1px
,1cm
,1em
,1vh
或其他任何单位,那么这将是有效的。
因此,your declaration is ignored:
用户代理必须忽略具有非法值的声明。
答案 2 :(得分:1)
0本身就意味着0,但任何更大或更小的东西都需要一个单位。你不能说1并期望长度/大小/等。
0表示无,有效。 1本身没有单位,CSS也不承担任何责任。
padding: 0px; /* px is redundant here because 0 means none */
padding: 1; /* error, what is 1? 1 cm? 1 em? */