CSS PR

上下・左右・中央に要素を配置するCSSテクニック

記事内に商品プロモーションを含む場合があります

CSSを使用して、要素を中央に寄せる方法を紹介します。
中央に配置するのはいろいろな方法があります。

要素を中央に寄せる方法

画像やテキストなど左右同じ隙間をあけて配置したり、上下で同じ余白をあけたかったりしますよね?
こんなときCSSで上下・左右・上下左右中央に配置する方法をいくつか紹介します。

 

 

左右中央に要素を配置する

ブロック要素を中央に配置する

 


<div class="box"></div>

 

.box{
  width: 300px;
  height: 300px;
  margin: 0 auto;
  background-color: black;
}

  

ブロック要素の中のインライン要素を左右中央に配置する


<div class="box">
   <img src="imgのリンクパス">
</div>

 

.box{
  width: 300px;
  height: 300px;
  text-align: center;
}

  

ブロック要素の中のものをpaddingで上下中央に配置する


<div class="box">
  
<div class="center"></div>

</div>

 

.box{
  width: 100px;
  padding: 10px 0;
  background-color: black;
}

.center{
  width: 50px;
  height: 50px;
  background-color: #FFF;
}

  

ブロック要素の中のものを上下中央に配置する

heightとline-heightを同じ数値にすることで上下中央に配置できます。
ただし、テキストの場合2行にわたる場合には使用できません。
 


<div class="box">
  

テキスト

</div>

 

.box{
  width: 100px;
  height: 60px;
  line-height: 60px;
  background-color: black;
  color: #FFF;
}

  

高さのわからない要素の上下中央に配置する

translateでずれている部分を半分戻しています。
 


<div class="box">
  
<div class="center"></div>

</div>

 

.box{
  width: 100px;
  height: 100px;
  background-color: black;
  position: relative;
}

.center{
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  -webkit- transform: translateY(-50%);
  background-color: #FFF;
}

  

positionで上下左右中央に配置する

translateでずれている部分を半分戻しています。
 


<div class="box">
  
<div class="center"></div>

</div>

 

  width: 100px;
  height: 100px;
  background-color: black;
  position: relative;
}

.center{
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
  background-color: #FFF;
}

  

flexboxで上下左右中央に配置する

flexboxは要素を横に並べたり、並べ替えたりできるプロパティですが、中のコンテンツを中央に配置するときにも使用できます。
 


<div class="box">
  
<div class="center">center</div>

</div>

 

.box{
  width: 100px;
  height: 100px;
  background-color: black;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.center{
  width: 50px;
  height: 50px;
  background-color: #FFF;
}

  
いかがでしょうか!
中央に配置できましたか?
CSSテクニックを日々更新していきます!

ABOUT ME
シラツキ
Web制作会社で働くフロントエンドエンジニア(コーダー)。 ココナラでもお仕事募集しております。 HTML,CSS,JS,WordPress,EC-CUBE,Next.jsなど制作に役立つ情報を発信していきます。 webサイトの運営、修正、制作などお仕事も募集中! お気軽にご相談ください。