2016-08-29 125 views
-3

爲什麼margin: 0 auto;有效,但margin: 1 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:我敢肯定,這答案將是適用於具有類似的煩惱,PLZ不要刪除搜索。

回答

4

因爲0是通用的,所以1取決於單位,並且由於沒有指定單位,所以瀏覽器不知道該怎麼做。

1

因爲margin-*屬性只接受長度,百分比和auto。不是整數。

在本節中定義的屬性指的是<margin-width> 值類型,其可以取以下值之一:

  • <length>:指定一個固定的寬度。
  • <percentage>:百分比是相對於 計算生成的框的包含塊的寬度。
  • auto

然後,因爲0作品是一個有效的length,但1不是。

一個長度值(由<length>在本說明書 表示)的格式是 緊跟一個單元標識符(例如,像素,EM,等)<number>(帶有或不帶有小數點)。在 之後零長度,單位標識符是可選的。

,如果你增加了一些單位像1px1cm1em1vh或任何這將是有效的。

因此,your declaration is ignored

用戶端必須忽略帶有非法值的聲明。

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? */ 
相關問題