⊗jsrtPmSyStC 103 of 112 menu

ReactでのStyled Componentsによるスタイリング

これまでのレッスンでは、グローバルCSSと インラインスタイリングを使用したスタイリング手法を 検討しました。このレッスンでは、大規模なアプリケーションに より効果的なアプローチ、つまり styled-componentsライブラリの使用について 取り組みます。

では、前回のレッスンで使用した CSSスタイルのないコンポーネントを 取り上げましょう:

function App() { return ( <div> <p>text</p> <p>text</p> <p>text</p> </div> ); }

まず、Styled Componentsライブラリを インストールします:

npm install --save styled-components

次に、必要なパッケージをAppコンポーネントに インポートします:

import styled from 'styled-components';

これで、タグをスタイルでラップし、 それをReactコンポーネントとして使用できるようになりましたが、 スタイルはJSに直接付属しています。 このアプローチはCSS in JSとも呼ばれます。

最初の段落をスタイリングしましょう。そのために、 App関数の前、インポート行の後に コンポーネントText1を作成します。ライブラリの styledオブジェクトには段落が必要なので、 styled.pと書きます。次に、 テンプレートリテラル内で必要なCSSスタイルを 通常のCSSのように列挙します:

const Text1 = styled.p` color: orangered; font-weight: bold; `;

ご覧の通り、ここではテンプレートリテラルとして 純粋なCSSを使用しており、非常に便利です。 同様に、メディアクエリ、疑似要素、 セレクタ、その他のCSS機能を使用できます。

次に、Appコンポーネント関数内で pタグを、作成したCSSスタイル付きのコンポーネント Text1に置き換えます:

<Text1>text</Text1>

同様に、2番目と3番目の段落を スタイリングします。そのために コンポーネントText2Text3を作成します:

const Text2 = styled.p` font-style: italic; color: brown; `; const Text3 = styled.p` background-color: orange; font-weight: bold; color: white; `;

最後に、divを スタイリングします。そのためにコンポーネントを作成し、 Containerと名付けます:

const Container = styled.div` width: 200px; border: 2px solid brown; padding: 10px; text-align: center; `;

すべてのタグを作成した コンポーネントに置き換えます:

import styled from "styled-components"; const Container = styled.div` width: 200px; border: 2px solid brown; padding: 10px; text-align: center; `; const Text1 = styled.p` color: orangered; font-weight: bold; `; const Text2 = styled.p` font-style: italic; color: brown; `; const Text3 = styled.p` background-color: orange; font-weight: bold; color: white; `; function App() { return ( <Container> <Text1>text</Text1> <Text2>text</Text2> <Text3>text</Text3> </Container> ); }

このアプローチにより、 スタイル付きの再利用可能な コンポーネントを作成できます。

ブラウザの開発者パネルで生成されたマークアップを 開くと、各コンポーネントに独自のユニークな クラスが生成されていることがわかります。 これにより、個々のコンポーネント間の クラスの衝突を心配する必要がなくなります。

同様に、例えばEmotion ライブラリを使用してコンポーネントを スタイリングすることもできます。

前回のレッスンの課題で作成した Reactコンポーネントを、 Styled Componentsライブラリを使用して スタイリングしてください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否