LoginSignup
1
0

More than 1 year has passed since last update.

マージン論理プロパティのすゝめ

Last updated at Posted at 2023-06-15

概要

みなさんが使っているCSSのマージンプロパティですが、論理プロパティを使えばより効率よくスタイリングできます。
本記事では、いくつかのユースケースを紹介していきます。

なおユースケースに焦点を当てますので、論理プロパティについては詳しく言及しません。
以下のドキュメントを参照してください。

中央寄せにするとき

使用するのはmargin-inlineです。インライン方向に余白を指定できます。
margin-left: auto; margin-right: auto;と同様の効果があります。

<style>
.box {
  width: 200px;
  height: 200px;
  background: lightblue;
  margin-inline: auto;
}
</style>

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

スクリーンショット 2023-06-13 8.39.24.png

アバターとテキストを組み合わせるとき

使用するのはmargin-inline-endです。
アバター画像とテキストが並んでいる状態で、画像横に余白をつけます。

<style>  
  img {
    width: 46px;
    height: 46px;
    object-fit: cover;
    border-radius: 23px;
  }
  .wrapper {
    display: flex;
    align-items: center;
  }
  .avatar {
    margin-inline-end: 1rem;
  }
</style>

<div class="wrapper">
  <img class="avatar" src="https://source.unsplash.com/random" alt="">
  <p>Your Name</p>
</div>

スクリーンショット 2023-06-13 16.35.58.png

これを右から左のレイアウトへ変更します。

...
<div dir="rtl">
  <div class="wrapper">
    <img class="avatar" src="https://source.unsplash.com/random" alt="">
    <p>Your Name</p>
  </div>
</div>

スクリーンショット 2023-06-13 16.41.37.png

論理プロパティはドキュメント方向に依存します。ドキュメント方向が右から左になったことで、余白の方向も変わっていることがわかります。
また、[dir="rtl"] .avatar {}みたいに指定する必要がありません。

縦書きの余白指定をするとき

使用するのはmargin-block-endです。
レスポンシブによって横書きから縦書きにすることがあります。その際、段落同士の余白を取りたい場合に有用です。

まずは横書きで段落ごとに下余白をつけましょう。

<style>
.wrapper {
  background: #ccc;
  padding: 1rem;
  height: 250px;
}
.wrapper p {
  margin-block-end: 1em;
}
.wrapper p:last-of-type {
  margin-block-end: 0;
}
</style>

<div class="wrapper">
  <p>段落1段落1段落1段落1段落1段落1段落1段落1段落1段落1</p>
  <p>段落2段落2</p>
  <p>段落3段落3段落3</p>
</div>

スクリーンショット 2023-06-13 16.12.48.png

では縦書きにしてみましょう。

<style>
.wrapper {
  writing-mode: vertical-rl;
}
</style>
...

スクリーンショット 2023-06-13 16.13.38.png

ここでわかるのは、縦書きになってもブロック方向の余白が取れていることです。
本来ブロック方向は垂直方向を示しているのですが、縦書きになることでブロック方向が変わります。

詳しい説明は以下が参考になります。

まとめ

論理プロパティを使用することでより簡潔にスタイリングすることができます。

しかし、扱うプロパティによっては思わぬ方向に余白がつく可能性があります。それぞれの特徴を把握して使用することが大切です。

最後に

GoQSystemでは一緒に働いてくれる仲間を募集中です!

求人は出していませんが、SREやQAエンジニアも今後募集していこうと考えています!
ご興味がある方は以下リンクよりご確認ください。

1
0
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
1
0