CSS3のFlexboxで要素を水平・垂直方向に中央揃えする方法
CSS3のFlexboxを使えば、複雑な計算やposition指定をすることなく、要素を水平・垂直方向の両方で簡単に中央揃えできます。ポイントは、親コンテナにdisplay: flex;を設定し、水平方向の配置にはjustify-contentプロパティ、垂直方向の配置にはalign-itemsプロパティを使用することです。
中央揃えに必要なプロパティ
- justify-content: center; … 主軸(デフォルトでは水平方向)に沿って子要素を中央に配置します。
- align-items: center; … 交差軸(デフォルトでは垂直方向)に沿って子要素を中央に配置します。
この2つのプロパティを組み合わせることで、コンテナ内のど真ん中に要素を配置することが可能になります。
実装例
以下は、Flexboxを使って子要素を水平・垂直方向に中央揃えするサンプルコードです。
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.h-container {
display: flex;
width: 300px;
height: 300px;
background-color: lightblue;
justify-content: center;
align-items: center;
border: 2px solid black;
}
.h-1 {
font-size: 30px;
width: 150px;
height: 150px;
background-color: red;
color: white;
border: 2px solid rgb(58, 2, 83);
}
</style>
</head>
<body>
<h2>Flexboxによる水平・垂直方向の中央揃え</h2>
<div class="h-container">
<div class="h-1">Centered Div</div>
</div>
</body>
</html>実行結果
上記のコードを実行すると、水色の正方形コンテナ(300px × 300px)の中央に、赤いボックスがきれいに配置されます。

解説
この例では、親要素である.h-containerに対してdisplay: flex;を指定し、Flexboxレイアウトを有効化しています。さらにjustify-content: center;とalign-items: center;を併せて設定することで、子要素の.h-1がコンテナの水平・垂直両方向の中心に配置されます。
従来のようにposition: absolute;とtransformを組み合わせたり、マージンを手動で調整したりする必要がないため、コードがシンプルになり、レスポンシブデザインにも柔軟に対応できるのがFlexboxの大きな利点です。
-
CSSのwriting-modeとtext-orientationで縦書きテキストを表示する方法
CSSでは、text-orientation: upright と writing-mode: vertical-rl を組み合わせて指定することで、文字を直立させたまま縦書きテキストを簡単に表示できます。日本語や中国語などの縦書きレイアウトを実現したい場合に非常に便利なプロパティです。基本構文CSSの writing-mode プロパティと text-orientation プロパティの構文は以下の通りです。Selector { writing-mode: /*値*/ text-orientation: /*値*/ }各プロパティの役割wr
-
Tkinterで垂直・水平スクロールバーを作成する方法を徹底解説
スクロールバーは、アプリケーションに動的な操作性を持たせるために非常に便利なウィジェットです。Tkinterでは、垂直方向と水平方向の両方のスクロールバーを簡単に作成できます。スクロールバーは、Scrollbar()ウィジェットのオブジェクトを初期化することで生成されます。 水平スクロールバーを作成する場合は、orientオプションに「HORIZONTAL」または「VERTICAL」を指定して向きを設定します。さらに、対象となるウィジェット(TextやListboxなど)とスクロールバーを連携させる設定を行うことで、初めて実際に操作できるようになります。 コード例 # 必要なライブラリをイン