create-react-appを用いて生成したReactプロジェクトにおいて、コンポーネントにCSSを適用する方法を紹介します。
インライン
通常のHTML要素がインラインでスタイルを適用できるとの同じ要領で、ReactコンポーネントもJSXの中にインラインでスタイルを記述することができます。
1 2 3 4 5 6 7 8 9 | import * as React from 'react' ; const MyButton = (props) => { return ( <button type= "submit" style={{backgroundColor: '#FF8A80' , padding: '20px' }}>BUTTON</button> ); }; export default MyButton; |
JSXの中でstyleに適用したいスタイルをJSオブジェクトで指定します。注意点としてCSSプロパティがキャメルケースとなります。background-colorのような記法ではないので気をつけてください。
className
create-react-appは内部でモジュールバンドラとしてWebpackを使っています。Webpackの特徴はCSSや画像などのアセットを全てJavaScriptとして扱うところです。よってJS(TS)コードからCSSをモジュールとして取り込むことができます。
1 2 3 4 | .MyButton { background-color : #FF8A80 ; padding : 20px ; } |
1 2 3 4 5 6 7 8 9 10 | import * as React from 'react' ; import './MyButton.css' ; const MyButton = (props) => { return ( <button type= "submit" className= "MyButton" >BUTTON</button> ); }; export default MyButton; |
HTML要素にclass名を振るのと同じ要領でJSX内で指定する際にはclassNameを用います。
ポイントはMyButton.cssをimportしている点です。
これにより別ファイルで用意したCSSを読み込み、スタイルを適用することができます。
Webpackに強く依存する点をどう評価するかにもよりますが、便利な記法です。
WEBアプリケーション関連 人気連載リンク
基礎からPHPWEBアプリ解発を学ぶなら・・
PHP基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載