論理プロパティが必要な理由:国際化
物理的なCSSプロパティがRTLレイアウトを壊す理由と、論理プロパティで解決する方法を理解します。
「論理プロパティが必要な理由:国際化」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。
物理プロパティの問題
従来のCSSでは、top、right、bottom、leftという物理的な方向を使用します。これらは英語のような左から右(LTR)の言語には適していますが、アラビア語やヘブライ語のような右から左(RTL)の言語や、伝統的な日本語のような縦書きの書字体系ではうまく機能しません。
物理方向と論理方向
次のように比較できます。
- 物理方向: top、right、bottom、left — 画面に固定された方向
- 論理方向: block-start、block-end、inline-start、inline-end — 書字モードを基準とする方向
ブロック軸とインライン軸
すべての書字体系には、次の軸があります。
- ブロック軸: テキストブロックが積み重なる方向(LTR/RTLでは縦方向、縦書きでは横方向)
- インライン軸: 1行の中でテキストが流れる方向(LTR/RTLでは横方向、縦書きでは縦方向)
LTRとRTLのレイアウト
LTR(英語)では、inline-start = left、inline-end = rightです。RTL(アラビア語)では、inline-start = right、inline-end = leftです。論理プロパティを使うと、メディアクエリやJavaScriptなしで自動的に適応します。
物理プロパティの実際のコスト
物理プロパティで記述されたサイトでは、反転させる必要があるすべてのmargin、padding、border、position、テキストの配置プロパティについて、RTL用の上書きスタイルシートまたはプロパティごとの上書きが必要になります。これにより、保守作業が倍増します。
書字モードが軸に与える影響
writing-mode: vertical-rl(日本語や韓国語の縦書き)を設定すると、ブロック軸は横方向になり、インライン軸は縦方向になります。論理プロパティは自動的に適応します。
<div class="vertical-text">縦書きテキスト Vertical Text</div>
現代のCSSでの採用
主要なブラウザーはすべて論理プロパティをサポートしています。CSS仕様では現在、書字モードや方向によって変わる可能性がある方向に関係するプロパティには、論理プロパティを使うことを推奨しています。
実践的な効果
論理プロパティを正しく使う単一のコードベースなら、重複なしでLTR、RTL、縦書きをサポートできます。CSSはルート要素のdirectionとwriting-modeの値に従うだけで済みます。
HTMLでの dir="rtl"
書字方向はCSSだけでなく、HTMLでも設定してください。
<div dir="rtl" lang="ar" class="rtl-demo">هذا نص من اليمين إلى اليسار</div>
段階的な導入
CSSを一度にすべて書き換える必要はありません。新しいコンポーネントから論理プロパティを使い始めてください。時間をかけて、国際化の影響を受けやすい領域にあるコンポーネントの物理プロパティを論理プロパティに置き換えていきます。
CSSの direction プロパティ
CSSのdirectionプロパティ(ltrまたはrtl)は、インライン方向に影響します。writing-modeと組み合わせて使うことで、要素の書字体系全体のコンテキストを定義します。
確認問題
margin-leftのような物理CSSプロパティは、なぜRTLレイアウトで問題になるのでしょうか。
まとめ
CSSの論理プロパティは、物理的なtop/right/bottom/leftではなく、ブロックとインラインのモデルを使用します。これにより、1つのスタイルシートでLTR、RTL、縦書きの書字体系に対応できます。directionとwriting-modeプロパティがコンテキストを定義し、論理プロパティはそのコンテキストに自動的に適応します。
よくある質問
「論理プロパティが必要な理由:国際化」レッスンは無料ですか?
はい。「論理プロパティが必要な理由:国際化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。
「論理プロパティが必要な理由:国際化」で何を学びますか?
物理的なCSSプロパティがRTLレイアウトを壊す理由と、論理プロパティで解決する方法を理解します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CSS Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「論理プロパティが必要な理由:国際化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCSS Academyレッスンでコードを書いて実行できますか?
はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 論理プロパティが必要な理由:国際化
- ブロック方向とインライン方向
- 論理的なMargin、Padding、Border
- RTLレイアウトでの論理プロパティ