2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LTR(Left to Right)とRTL(Right to Left)の文脈でマージンを効率的に設定する方法

Posted at

概要

カードコンポーネントを実装するときに横並びのアイコンとテキストの間にマージン(余白)を入れることはよくありますが、LTR RTL かによってマージンを入れる箇所が異なります。LTR ならアイコンに margin-right: 1rem; をあてて RTL ならアイコンに margin-right: 0;margin-left: 1rem;をあてる方法もありますが、margin-inline-end: 1rem; をあてることによってそれを効率的に実装することができます。ちなみに margin-inline-end というプロパティは Tailwind CSS にもあるので Tailwind CSS でも使用できます。

.avatar {
  /* Default for LTR */
  margin-right: 1rem;
}

.rtl .avatar {
  /* for RTL */
  margin-right: 0;
  margin-left: 1rem;
}
.avatar {
  margin-inline-end: 1rem;
}

こちらのCodePenは margin-inline-end プロパティを使用して、LTRRTL の文脈でアイコンとテキスト間のマージンがどのように適用されるかを示しています。

See the Pen margin-inline-end demo by Tahera Alam (@alam_tahera) on CodePen.

LTR と RTL

LTRRTL はテキストの読み書きの方向性を指します。LTRLeft to Right(左から右へ)を意味し、英語や日本語など多くの言語がこの読み書きの方向を採用しています。RTLRight to Left(右から左へ)を意味し、アラビア語やヘブライ語など一部の言語がこの読み書きの方向を採用しています。海外展開をより重視したいサービスの場合 margin-right margin-left を使用するより margin-inline-end を使用すると適切かもしれないですね。

margin-inline-start と margin-inline-end

margin-inline-start というプロパティもあって margin-inline-startmargin-inline-end は要素の周囲にマージン(余白)を追加するために使われますが、その適用は要素のインライン軸(テキストの流れの方向)に沿って行われます。これにより、特に多言語サイトを設計する際に、Left to Right(左から右へ) または Right to Left(右から左へ) のテキスト方向に基づいて、自動的にマージンを適切に配置することができます。

  • margin-inline-start
    意味: 要素のインライン軸の開始側(テキストが始まる側)にマージンを適用します。
    LTR言語の場合: 左側にマージンが適用されます。
    RTL言語の場合: 右側にマージンが適用されます。

  • margin-inline-end
    意味: 要素のインライン軸の終了側(テキストが終わる側)にマージンを適用します。
    LTR言語の場合: 右側にマージンが適用されます。
    RTL言語の場合: 左側にマージンが適用されます。

参照

自らの備忘録のために投稿してますが、なにかお役に立てましたら幸いです!:clap:
また、なにか間違ってましたらご指摘いただけますと幸いです!:pray:

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?