LoginSignup
15
1

positionを使わないでFlexboxでデザイン配置する(最近よくやる)

Last updated at Posted at 2023-12-04

この記事は アイスタイル Advent Calendar 2023 3日目の記事です。

potisionではなくFlexboxで実装する小技

よく使うわりに記述内容を忘れてしまうので備忘録を兼ねて:writing_hand_tone1:

例えばビジュアルや画像内で文字列などの要素を天地中央に配置したいとかpositionプロパティを使ってレイアウトを組むと思いますが、最近はFlexboxを使うのにハマってます。
positionを使用することで要素の高さが担保できなく、レイアウトが崩れることがある…など困ったときにとても便利だなと思いました。

特定の要素内で天地中央に配置する例

例)画像の中にテキストを天地中央に配置
▼position

See the Pen positionを使わないでflexでデザイン配置する(position) by か。 (@rnzdywgn-the-flexboxer) on CodePen.

▼Flexbox

See the Pen positionを使わないでflexでデザイン配置(flex) by か。 (@rnzdywgn-the-flexboxer) on CodePen.

justify-content:centerで中央寄せにし、align-items:centerで中央揃えにすることで天地中央にすることができます。

要素同士を上下で配置したい

例)イメージ図
a.png

See the Pen 要素同士を上下に配置する(position) by か。 (@rnzdywgn-the-flexboxer) on CodePen.

flex-direction:columnで起点を垂直に変更しjustify-content:space-betweenで両端揃えで均等にすることで上下に配置できます。

こういったレイアウトを組む場合、positionを使用するとabsoluteされた要素の高さを担保できなくなるのでレイアウトの組み方を考慮する必要がありますがFlexboxならあまり難しく考えずに実装できます。(要素の大きさが変化した際に崩れるという心配事が減りますね~)

15
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
1