Web サイトをデザインする場合、世界中の視聴者にとって、左から右へ記述する (LTR) 言語と右から左へ記述する (RTL) 言語の両方に対応することが不可欠です。ほとんどの開発者はレイアウト調整に margin-left と margin-right を使用することに慣れていますが、これらのプロパティはテキストの方向が変わる環境では不十分です。 margin-inline-start とそれに論理的に対応する - 多言語および双方向コンテンツのデザインを容易にする最新の CSS プロパティを入力します。
この記事では、margin-left/margin-right から margin-inline-start および margin-inline-end に切り替えることで、柔軟性がどのように向上し、LTR 言語と RTL 言語間で一貫性が維持されるかを説明します。
CSS の論理プロパティを理解する
margin-left や margin-right などの従来の CSS プロパティは物理プロパティであり、その動作は画面の視覚的な左右に関連付けられていることを意味します。これは英語などの LTR 言語では問題なく機能しますが、アラビア語やヘブライ語など、ページの方向が RTL に切り替わると問題が発生します。
CSS3 で導入された論理プロパティは、方向に依存しません。これらは、ドキュメントまたは要素の書き込みモードに基づいて適応します。主要な論理マージンのプロパティは次のとおりです。
• margin-inline-start: LTR の margin-left と RTL の margin-right を置き換えます。
• margin-inline-end: LTR の margin-right と RTL の margin-left を置き換えます。
これらのプロパティは双方向テキストの自然な流れとよりよく調和しており、国際化された Web デザインには不可欠です。
margin-inline-start を使用する理由
1 - シームレスな RTL サポート
margin-left を使用すると、テキストの方向に関係なく、常に要素の左側にマージンが適用されます。この動作はページが RTL に切り替わっても変わらないため、レイアウトがずれる原因となります。対照的に、margin-inline-start はテキストの方向に基づいて適応し、マージンを適切な側に適用します。
/* Logical property */ .element { margin-inline-start: 20px; } /* Equivalent to */ :root[dir="ltr"] .element { margin-left: 20px; } :root[dir="rtl"] .element { margin-right: 20px; }
2 - クリーナー コード
論理プロパティがなければ、LTR と RTL の両方をサポートするには方向固有のスタイルが必要となり、複雑さが増し、エラーが発生する可能性があります。比較は次のとおりです:
従来のアプローチ:
:root[dir="ltr"] .element { margin-left: 20px; } :root[dir="rtl"] .element { margin-right: 20px; }
現代的なアプローチ:
.element { margin-inline-start: 20px; }
3 - 将来性と拡張性
論理プロパティは、適応的で柔軟なレイアウトに向けた CSS の継続的な進化の一部です。 margin-inline-start を採用することで、設計を最新の標準に合わせて、拡張性と保守性が向上します。
実際の例
RTL サポートを向上させるために一般的なカード レイアウトをリファクタリングする方法は次のとおりです。
前: margin-left
を使用する
.card { margin-left: 1rem; padding-left: 2rem; }
RTL では、左側の間隔が固定されたままであるため、レイアウトが崩れます。
後: margin-inline-start
を使用する
/* Logical property */ .element { margin-inline-start: 20px; } /* Equivalent to */ :root[dir="ltr"] .element { margin-left: 20px; } :root[dir="rtl"] .element { margin-right: 20px; }
方向が変わるとマージンとパディングが自動的に調整されるようになり、一貫したユーザー エクスペリエンスが保証されます。
ブラウザのサポート
論理プロパティは、Chrome、Edge、Firefox、Safari などの最新のブラウザで十分にサポートされています。古いブラウザをサポートする必要がある場合は、フォールバックの使用を検討してください:
:root[dir="ltr"] .element { margin-left: 20px; } :root[dir="rtl"] .element { margin-right: 20px; }
最終的な考え
margin-inline-start のような論理プロパティへの切り替えは、アクセシビリティ、保守性、国際化に大きな影響を与える小さな変更です。ウェブがますますグローバルになるにつれて、これらのプロパティを採用することで、デザインが世界中のユーザーに受け入れられ、適応できるものになります。
それでは、次回 margin-left を使用するときは、立ち止まって検討してください。margin-inline-start のほうがうまく機能するでしょうか?おそらくそうなるでしょう。
コーディングを楽しんでください。あなたのデザインがどの言語でも美しく流れますように!
以上がウェブデザインにおける RTL サポートを改善するために margin-inline-start を採用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。