CSS要素が中央に位置する様々な方法

3810 ワード

CSS要素が中央に位置する様々な方法

水平方向中央


インライン要素

  • 外層にブロックレベルの親要素を追加し、text-align: center;
  • を設定する.
     <div style="text-align: center;">
       <a>      a>
     div>
    

    ブロックレベル要素

  • margin: 0 auto;及び幅
  • を設ける.
     <div style="margin: 0 auto; width: 200px;">
           
     div>
    

    複数のブロックレベル要素

  • 方法1インライン
  • 外層にブロックレベルの親要素を追加し、text-align: center;
  • を設定する.
  • サブエレメントは、インラインエレメント
  • に設定する.
  • メソッド二flexbox
  • 外側にブロックレベルの親要素を追加し、
  • を設定します.
  • display: flex; justify-content: center;

  • relative + absolute

  • 親要素postion: relative;
  • サブエレメント幅+オフセット+外側距離
  • ( width: 500px; left: 50%; margin-left: -250px; )

  • 垂直方向中央揃え


    インライン要素

  • 方法内マージン
  • 設置padding: 50px;
  • メソッド2要素の高さ=行の高さ
  • 設置height:100px; line-height:100px;
  • メソッド3 flexbox(親要素の高さを設定する)
  • 設置height:200px; display:flex; flex-direction: column; justify-content: center;
  • ブロックレベル要素


    幅、高さ固定width:18 em;height: 10em;

  • 方法1
  • 親要素設定position:relative;
  • サブエレメントはtopとleftを50%に設定します.margin上半分高margin左半分幅position:absolute; top: 50%; left: 50%; margin-left: -9rem; margin-top: -5rem;
  • 方法二
  • 親要素設定position:relative;
  • サブエレメントtopをcalc(50%カット高さ)leftをcalc(50%カット幅)position:absolute; top: calc(50% - 5em); left: calc(50% - 9em);
  • に設定.

    幅、高さが固定されていない

  • 親要素設定position:relative;
  • サブエレメントはtopとleftを50%に設定します.transform: translate(-50%, -50%); position:absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);

  • flexbox

  • 方法margin
  • 親要素設定display: flex;
  • サブエレメント設定幅+margin: auto;
  • 方法二
  • 親要素設定display: flex;
  • サブエレメント設定幅+justify-content: center; align-items: center;