回答:
width
適用したオブジェクトにを指定すると、オブジェクトはそのmargin: 0 auto
親コンテナ内の中央に配置されます。
auto
2番目のパラメーターとして指定すると、基本的に、ブラウザーに左右のマージン自体を自動的に決定するように指示します。これは、マージンを等しく設定することで行います。左マージンと右マージンが同じサイズに設定されることが保証されます。最初のパラメーター0は、上部マージンと下部マージンの両方が0に設定されることを示します。
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
したがって、例を示すと、親が100pxで子が50pxの場合、auto
プロパティはとの間margin-left
で共有する50pxの空き容量があると判断しますmargin-right
。
var freeSpace = 100 - 50;
var equalShare = freeSpace / 2;
それは与えるでしょう:
margin-left:25;
margin-right:25;
%
ますか?私が意味する、左右のように同じ結果を与えることができますCSSの他のプロパティがありますauto
margin:auto 0
条件で何が起こりますか?
通常のフローでのブロックレベルの置換されていない要素の幅とマージンの計算に関するCSS仕様から:
'margin-left'と 'margin-right'の両方が 'auto'の場合、それらの使用値は同じです。これは、要素を含むブロックのエッジに対して要素を水平方向に中央揃えにします。
margin:0 auto;
0
上下とauto
左右用です。つまり、要素の幅とコンテナーの幅に応じて、左右のマージンが自動マージンになります。
一般に、要素を中央に配置したい場合は、margin:auto
完全に機能します。しかし、それはブロック要素でのみ機能します。
margin-top:0;
margin-bottom:0;
margin-left:auto;
margin-right:auto;
0は上下、autoは左右です。ブラウザーがマージンを設定します。
2つの値がどのように機能するかについてのいくつかの説明で、それはより明確になります。
marginプロパティは以下の略記です。
margin-top
margin-right
margin-bottom
margin-left
では、どうして2つの値しかないのでしょうか。
まあ、あなたはこのように4つの値でマージンを表すことができます:
margin: 10px, 20px, 15px, 5px;
これは、上部10px、右20px、下部15px、左5pxを意味します
同様に、次のような2つの値で表すこともできます。
margin: 20px 10px;
これにより、上下に20px、左右に10pxのマージンができます。
そして、あなたが設定した場合:
margin: 20px auto;
次に、20pxの上下のマージンとautoの左右のマージンを意味します。autoは、コンテナに基づいて左/右マージンが自動的に設定されることを意味します。要素がブロックタイプの要素である場合、つまりボックスであり、ビューの幅全体を占める場合、autoは左右のマージンを同じに設定するため、要素は中央に配置されます。
body
と私たちは常に与えるwidth
とmargin:0 auto
まで#wrapper