2016-08-29 12 views
-3

なぜmargin: 0 auto;でも動作しますが、margin: 1 auto;はありません。単純にこれを修正するいくつかのhackishな方法はありますか?愚かな質問 UPDのため申し訳ありません なぜ `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>

:私はこの答えは、同様のトラブルを持って削除しないplzはサーチャーのために有用であろうと確信しています。

答えて

4

0はユニバーサルなので、1はユニットに依存し、ユニットが指定されていないためブラウザは何をすべきか分からない。

1

margin-*プロパティは長さ、パーセンテージ、およびautoしか受け入れません。整数ではありません。このセクションで定義され

特性は、次のいずれかの値をとることができる<margin-width> 値型を参照:

  • <length>:固定幅を指定。
  • <percentage>:パーセンテージは、生成されたボックスの包含ブロックの幅である に対して計算されます。その後
  • auto

0動作するための有効なlengthですが、1ではありません。

(本明細書で <length>で示す)の長さの値のフォーマットは、<number> 直ちに(例えば、PX、EM、等)単位識別子が続く(または小数点なし)です。 の長さがゼロの場合、ユニット識別子はオプションです。

あなたが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? */ 
関連する問題