私見ですが
初めに結論を書いておきますが、個人的には、要素を縦並びでセンタリングするのであれば全て
css
1display: block;
2width: xx;
3margin: 0 auto;
としておくのが一番無難なのではないかな、と思います。
text-align: center について
text-align
は要素内にあるインラインレイアウトに関する指定です。
ですので、ブロックレイアウトなどにあるものには影響しません。
つまり、センタリンクしたい要素が以下のようなものである時に、text-align: center
をその親要素に指定することが必要です。
- 文字
- 一部のフォーム部品など、
display: inline-block
となっている要素で、display
が指定されていないもの
- a など、
display: inline
となっている要素で、display
が指定されていないもの
- img や iframe などの置換要素で、
display
が指定されていないもの
- css で
display
が inline-block
,inline-table
などに指定されている要素
個人的にはインライン要素のセンタリングにtext-align: center
を使うのはいかがなものかなあ、と思っています。テキスト、またはせいぜい置換要素に限った方がいいのでは。
margin: 0 auto について
margin: 0 auto
はその要素の水平方向の余白を左右等しくするものです。
ただし、margin
のauto
値は、レイアウトと浮動(float)と配置(position)によって解釈が異なります。
詳細はこちらの表をご覧ください。
値 | margin-left - CSS: カスケーディングスタイルシート | MDN
極めて大雑把に言うと、display:block
の中にある float:none
,position:static
またはrelative
の要素じゃないと思った通りにセンタリングしないことが多いです。
また、余白の均等分配によってセンタリングをするため、余白の余地がない場合はセンタリングしません。
border
とpadding
とwidth
の合計値が親要素を超えている場合、余白の余地がないので、センタリングしようと右寄せしようと結果は変わりません。
width
の初期値はauto
ですが、これは通常のフローですとwidth: 100%
と解釈されますので、それだけで余白の余地がなくなります。
つまり、width
に何の指定もしていない場合はセンタリングが効かないと思っていいです。
display: inline-block について
個人的には、センタリング目的での使用については、忘れていいと思います。
使わない方がいいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/06 04:02
2021/08/06 04:12 編集
2021/08/06 04:12