ウェブプラットホーム(3/6)の弾丸証明RTL
このポストはRTL互換のWebプラットフォームを構築する方法について、6部シリーズの第3部です.
最後の投稿で述べたように、CSSの論理的なプロパティをすべてのスタイルで使用して、テーブルに問題をもたらします. 古いブラウザのサポート ヒューマンエラー 幸いにも、一度に両方の問題を解決する1つのソリューションがあり、このコンテキストであなたのシステム弾丸の証拠になります!そして、それが適用される前に、それは単純な用語で、CSSを逆転させます.
によるとcaniuse.com , the
しかし、あなたが「退屈な仕事」を持っているならば、あなたのRTL互換のプラットホームを古いブラウザーによってサポートさせてください(我々全員はあなたを見ています...).86 %は明らかに十分ではない.
人間として、私たちは時には小さな間違いをするだけで、習慣の力によって、我々はその“自動操縦モード”では、我々の潜在意識が引き継ぐ、と我々は我々がもはや意味していない何かを作るに終了します.
この動作は、CaseBaseのCSS論理プロパティの使用を突然強制する場合、おそらく多くの場合に起こります.ウェブ開発者の大部分が書くのに用いられるように
たとえあなたが働いているプロジェクトのコードレビューシステムを持っていても
理論上、上で参照される両方の問題の解決は、非常に単純です.我々は、逆にするだけです
そして、私たちのすべてがスタイリングのために全く同じ解決を使用しているならば、それは実際に簡単です.しかし、いいえ、各々のプラットホームはユニークです、そして、各々はスタイリングのために異なるセットアップを使います.それで、私はちょうど我々がこれをすることができる方法についてカバーするつもりですStyled Components , おそらく最近のすべての現代のWebプラットフォームのJSツールで最も使用されるCSSです.
このCSSの人気がJS Libにあるため、オープンソースのLIBとスタイルのコンポーネントの周りのツールを作成しました.存在stylis-plugin-rtl そのうちの一つです.そして、これは特に私たちのRTLの問題を解決するために使用することができます.
StyleプラグインRTLは、
次のコードスニペットが次の内部に構築されました.プロジェクト.
スタイラスプラグイン
スタイラスプラグイン
右
左側
左側
右
パディング
左詰め
左詰め
パディング
テキストの整列
テキストの整列
テキストの整列
テキストの整列
これは、位置決めに役立つだけではありませんが、それも多くのUI関連のバグを防ぐのに役立ちます
すべての古いブラウザをサポートしなければならない場合は、使用しているスタイリングソリューションの周りのツールを見てください.うまくいけば、ドキュメントの方向に応じてCSSプロパティを逆にすることができます.
次の章では、RTLとLTR(アイコン)で同じ意味を持つために、反転する必要のあるコンポーネントを見ていきます.
これらのシリーズで最新のアップデートで調整されたままでいるために、私について来てください!
RTL弾丸を作る
最後の投稿で述べたように、CSSの論理的なプロパティをすべてのスタイルで使用して、テーブルに問題をもたらします.
古いブラウザのサポート
によるとcaniuse.com , the
left
and right
CSSの論理的なプロパティの等価物は、すべてのブラウザ全体で約86 %のサポートを持っています.これは既に多くのプラットフォームで十分かもしれません.しかし、あなたが「退屈な仕事」を持っているならば、あなたのRTL互換のプラットホームを古いブラウザーによってサポートさせてください(我々全員はあなたを見ています...).86 %は明らかに十分ではない.
ヒューマンエラー
人間として、私たちは時には小さな間違いをするだけで、習慣の力によって、我々はその“自動操縦モード”では、我々の潜在意識が引き継ぐ、と我々は我々がもはや意味していない何かを作るに終了します.
この動作は、CaseBaseのCSS論理プロパティの使用を突然強制する場合、おそらく多くの場合に起こります.ウェブ開発者の大部分が書くのに用いられるように
*-left
& *-right
の代わりに*-start
& *-end
. また、他の場所からのコード断片をコピーしたり、デザインのCSSを通して読んだりするとき、これらのタイプの状況が発生する可能性が高い.たとえあなたが働いているプロジェクトのコードレビューシステムを持っていても
left
and right
CSSのプロパティは、最終的には、RTLバージョンのウェブサイト上のF * CKいくつかの映像を取得します.解決策
理論上、上で参照される両方の問題の解決は、非常に単純です.我々は、逆にするだけです
*left
to *right
そして、逆のとき、我々のウェブサイトをRTL言語に変えてください.そして、私たちのすべてがスタイリングのために全く同じ解決を使用しているならば、それは実際に簡単です.しかし、いいえ、各々のプラットホームはユニークです、そして、各々はスタイリングのために異なるセットアップを使います.それで、私はちょうど我々がこれをすることができる方法についてカバーするつもりですStyled Components , おそらく最近のすべての現代のWebプラットフォームのJSツールで最も使用されるCSSです.
RTL形式のコンポーネント
このCSSの人気がJS Libにあるため、オープンソースのLIBとスタイルのコンポーネントの周りのツールを作成しました.存在stylis-plugin-rtl そのうちの一つです.そして、これは特に私たちのRTLの問題を解決するために使用することができます.
StyleプラグインRTLは、
StyleSheetManager
ラッパーの小道具は、スタイルのコンポーネント内で定義されているすべてのパドル/マージン/ポジショニング値を逆にします.次のコードスニペットが次の内部に構築されました.プロジェクト.
import React from 'react';
import { AppProps } from 'next/app';
import { StyleSheetManager } from 'styled-components';
import { StylisPlugin } from 'styled-components';
import stylisRTLPlugin from 'stylis-plugin-rtl';
import { useTranslation } from 'react-i18next';
const App = (props: AppProps): JSX.Element => {
const { Component, pageProps, router } = props;
const { locale } = router;
const { i18n } = useTranslation();
// Get direction based on locale
const direction = i18n.dir(locale);
return (
<StyleSheetManager
stylisPlugins={
direction === 'rtl' ? [stylisRTLPlugin as unknown as StylisPlugin] : []
}
>
<Component {...pageProps} />
</StyleSheetManager>
);
};
export default App;
上記のコードサンプルでわかるように、方向が設定されるたびにプラグインを添付しますrtl
そして、方向に何かを付けていないltr
. この方法では、右のプロパティを残してleft
なるright
, padding-right
なるpadding-left
など.これらのプロパティがスタイル付きコンポーネント内で定義されている場合にのみ発生します.スタイラスプラグイン
スタイラスプラグイン
右
左側
左側
右
パディング
左詰め
左詰め
パディング
テキストの整列
テキストの整列
テキストの整列
テキストの整列
これは、位置決めに役立つだけではありませんが、それも多くのUI関連のバグを防ぐのに役立ちます
padding-left
コードレビューをパスし、生産に入ります.結論
すべての古いブラウザをサポートしなければならない場合は、使用しているスタイリングソリューションの周りのツールを見てください.うまくいけば、ドキュメントの方向に応じてCSSプロパティを逆にすることができます.
次の章
次の章では、RTLとLTR(アイコン)で同じ意味を持つために、反転する必要のあるコンポーネントを見ていきます.
これらのシリーズで最新のアップデートで調整されたままでいるために、私について来てください!
Reference
この問題について(ウェブプラットホーム(3/6)の弾丸証明RTL), 我々は、より多くの情報をここで見つけました https://dev.to/pffigueiredo/bullet-proof-rtl-rtl-in-a-web-platform-3-6-4bneテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol