みやちゃ
今回はReact.js入門の第2弾です!
JSXのStyle属性の指定方法をご紹介します。
- JSXでStyle属性を指定する方法
JSXでstyle属性を指定できるようになります!
目次
React.jsで文字列を表示
まずは以下のコードを見てください。
文字だけを表示しているもので、スタイルは何も指定していません。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/react@15/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.38/browser.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
ReactDOM.render(
getDOM(),
document.getElementById('root')
)
function getDOM() {
return (
<div>
<p>コクリコ坂から</p>
</div>
)
}
</script>
</body>
</html>
ReactDOM.renderの第一引数に、getDOM()関数を渡しています。
その後functionでgetDOMの中身を定義しています。
上記のプログラムをブラウザで表示すると、以下のようになります。
スタイルを何も指定していないので、当然ただ文字列が表示されているだけです。
この文字列にスタイルを指定していきましょう。
オブジェクトでスタイルを指定
JSXでは、CSSのスタイルをオブジェクトのプロパティに指定することで、スタイルを指定します。
書き方にも2種類あり、「CSS形式」と「Javascript形式」があります。
それぞれの書き方を見てみましょう。
CSS形式
まずはCSSスタイルで書いていきます。
以下のコードを見てください。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/react@15/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.38/browser.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
ReactDOM.render(
getDOM(),
document.getElementById('root')
)
function getDOM() {
const css = {
"color": 'red',
"background-color": 'blue',
"font-size": '50px'
}
return (
<div>
<p style={css}>コクリコ坂から</p>
</div>
)
}
</script>
</body>
</html>
追記したのは、17〜21行目の部分です。
cssという名前の変数を定義して、CSSのスタイルを代入しています。
25行目で「style={css}」とすることで、スタイルを指定しています。
ブラウザでは以下のように変化しました。
Javascript形式
続いてJavascriptスタイルの書き方を見てみましょう。
以下のコードを見てください。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/react@15/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.38/browser.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
ReactDOM.render(
getDOM(),
document.getElementById('root')
)
function getDOM() {
const css = {
color: 'red',
backgroundColor: 'blue',
fontSize: '50px'
}
return (
<div>
<p style={css}>コクリコ坂から</p>
</div>
)
}
</script>
</body>
</html>
どこが変わったかお分かりでしょうか?
まずはダブルクォーテーションがなくなっています。
さらに「font-size」と記述していたのが、「fontSize」となっています。
Javascriptスタイルで記述する場合、小文字から始めて、大文字になるところで単語の区切りを示します。
Javascriptスタイルで書いても当然ブラウザでの変化は同じです。
まとめ
いかがでしたでしょうか?
今回は、JSXでstyle属性を指定する方法をご紹介しました!
みやちゃ
ここまでご覧いただきありがとうございます!