
cssで要素を上下左右に中央寄せするサンプル
css関連記事

レスポンシブ対応がカンタンに!CSS aspect-ratioプロパティの使い方

jQuery UIのsortableを使ってリストをドラッグで並び替える

HTMLのsvgタグとJavaScriptで円グラフの画像をつくる

select・optionタグをjQueryで、プルダウンの選択値を取得、変更する

placeholderを見やすく!jQuery+css3でつくるフローティングラベル

効率よくセレクタを指定してcss効かせるサンプル!21選

楽天スマホで使える!classを使わずにcssを適用する裏技

cssのkeyframesで画像に動きや変化のアニメーションをつけるサンプル10選

cssで要素に動きや変化をアニメーションでつける、keyframesの使い方
text−alignで中央寄せ
html
<div class="box"> <h5 class="center">インライン要素</h5> </div>
css
.box{
width: 50%;
}
.box .center{
border: 1px solid #aaa;
text-align: center;
}
よく使うやつですね。これで横方向の中央寄せができます。
line-heightで中央寄せ
html
<div class="lineheight">
<h5>インライン要素</h5>
</div>
css
.lineheight{
border: 1px solid #aaa;
height: 50px;
width: 50%;
}
.lineheight h5{
margin: 0;
line-height: 50px;
text-align: center;
}
heightとline-heightを同じ値すると縦方向の中央配置ができます。
ただし、この方法ではテキストが1行の場合のみ中央配置することができます。個人的によく使うのはナビゲーションですね。
margin: autoで中央寄せ
html
<div class="parent">
<div class="inner">
ブロック要素
</div>
</div>
css
.parent{
border: 1px solid #aaa;
position: relative;
height: 150px;
width: 50%;
}
.inner{
border: 1px solid #aaa;
width: 150px;
height: 50px;
line-height: 50px;
text-align: center;
top: 0;
bottom: 0;
left: 0;
right: 0;
position: absolute;
margin: auto;
}
親要素にposition: relative;を、
子要素にposition: absolute;を指定すると、親要素の範囲内で配置を指定できます。
さらに子要素にtop: 0; bottom: 0; left: 0; right: 0;とmargin: auto;を指定すると中央に引っ張り合うようで、中央配置ができます。
ついでに中央からちょっと下に下げたいなという場合に、top: 20px;のように指定すれば中央から下に20px下がった位置で配置できます。
paddingで中央寄せ
html
<a class="padding">
padding
</a>
css
.padding{
border: 1px solid #aaa;
padding: 20px 40px;
}
aタグなどインライン要素に使える方法です。単純にpaddingで左右と上下をそれぞれ同じ値すると中央配置ができます。
同じ値で左右に余白を作るわけですから当然中央配置になりますね。
ulで中央寄せ
html
<ul class="nav"></ul>
js
jQuery(document).ready(function($) {
for (var i = 1; i <= 5; i++) {
$("ul.nav").append('<li><a>項目'+i+'</a></li>');
}
});
css
ul.nav{
list-style: none;
padding: 0;
margin: 0;
background: #222;
text-align: center;
}
ul.nav li{
display: inline-block;
width: calc(100% / 6);
background: #fff;
border: 1px solid #aaa;
}
ul.nav li a{
display: block;
line-height: 50px;
}
ナビゲーションによくある構造です。
ulに空白がある場合に中央配置させる方法です。
内側から説明していくと、aタグにはline-heightで50pxの高さを与えています。
display: block;は指定しないとクリックできる部分がテキストの部分だけになってしまうのでボタン全体がクリックできるように指定しています。
あとで出てくるulにtext-align: center;指定してあるのでテキストも中央配置になっています。
次にliはdisplay: inline-block;で横並びにしています。
今回はulに空白がある場合を作っていくのでfloatではできません。そのためulの中に改行を入れられないのでjsでliを追加しています。
ulでの横並び
作り方は下記で解説しています。

横幅はwidth: calc(100% / 6);でliの1個分の余白をだしています。
aタグの幅はliのサイズまで広がります。
最後にulにtext-align: center;を指定するだけでli部分の中央配置ができます。
上のサンプルを組み合わせて作っただけなのでこれらを押さえておけばいろいろ応用ができますね。
calcの使い方
作り方は下記で解説しています。



コメント