Divを追い風に垂直に配置するにはどうすればよいですか?私が欲しいもの:
-----------------------------------
| |
| |
| |
| item1 |
| item2 |
| |
| |
| |
-----------------------------------
私が現在持っているもの:
-----------------------------------
| item1 |
| item2 |
| |
| |
| |
| |
| |
| |
-----------------------------------
HTML
<div class="flex flex-col h-screen my-auto items-center bgimg bg-cover">
<h3 class="text-white">heading</h3>
<button class="mt-2 bg-white text-black font-bold py-1 px-8 rounded m-2">
call to action
</button>
</div>
CSS
.bgimg {
background-image: url('https://d1ia71hq4oe7pn.cloudfront.net/photo/60021841-480px.jpg');
}
クラスitems-center
を使用して、第2軸(左右)を中心に配置することに成功しました。ドキュメントを読んでalign-middle
を試しましたが、機能しません。 divが完全な高さとmy-auto
であることを確認しました。
私はこのバージョンのテールウィンドを使用しています: https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css
ここにJSFIDDLEがあります: https://jsfiddle.net/7xnghf1m/2/
クラスjustify-center
を使用して主軸に合わせます。 align-middle
はクロス軸で動作します。
あなたもすることができます
<div class="flex h-screen">
<div class="m-auto">
<h3>title</h3>
<button>button</button>
</div>
</div>
アンダースの答えはこの特定のケースの問題を解決しますが、justify-center
とitems-center
の使用は状況に応じたものであることに注意することが重要です。
tailwind documentation の例の1つを見てみましょう。
<link href="https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css" rel="stylesheet"/>
<div class="flex justify-center bg-grey-lighter">
<div class="text-grey-darker text-center bg-grey-light px-4 py-2 m-2">1</div>
<div class="text-grey-darker text-center bg-grey-light px-4 py-2 m-2">2</div>
<div class="text-grey-darker text-center bg-grey-light px-4 py-2 m-2">3</div>
</div>
上記のコードを見るとわかるように、要素を水平方向に中央揃えしています。これの理由は、justify-centerクラスが要素をフレックスコンテナーの主軸の中心に配置するためです。
つまり、主軸を「列」に変更すると、異なる結果が得られます。
<link href="https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css" rel="stylesheet"/>
<div class="flex flex-col justify-center bg-grey-lighter">
<div class="text-grey-darker text-center bg-grey-light px-4 py-2 m-2">1</div>
<div class="text-grey-darker text-center bg-grey-light px-4 py-2 m-2">2</div>
<div class="text-grey-darker text-center bg-grey-light px-4 py-2 m-2">3</div>
</div>
Justify-CenterとItems-Centerは、要素を主軸と交差軸の中心に配置し、互いの代わりに使用できます。これらは互いに反対であり、現在の主軸が何であるかによって異なる結果を生成します。
垂直方向の配置は少しトリッキーです。これはうまくいくはずです。
これは、質問のASCII画像に類似したビューを生成するためのサンプルコードです。
<link href="https://cdn.jsdelivr.net/npm/tailwindcss/dist/tailwind.min.css" rel="stylesheet"/>
<div class="relative h-32 bg-blue-400">
<div class="absolute inset-0 flex items-center justify-center">
Item 1
<br>
Item 2
</div>
</div>