1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【React -- jsx】jsxでスタイル付け(CSS)をする際のメモ

Posted at

スクールのチーム開発の際に学んだ、jsxでスタイル(CSS)付けをする方法について記載します。
初学者が作業を進める上で知ったこと/ぶち当たったことが主で、jsxの注意点が網羅されているわけではありません。ご容赦ください。

##対象読者
・ほぼ初めてjsxに触れる方
(ごく初歩的な内容のため、すでにReactを使いこなしているという方には既知の内容と思われます)

##環境
React.js 16.13.1
Node.js 12.13.1


###1、スタイルのつけ方
・ライブラリ'emotion'をインポートしてcssという名前をつける
(※スタイル付けをするためのライブラリは他にもあるようです)
・スタイルを付けたいタグに任意のclassNameをつける。(この場合、”titleClass”)
・つけたclassNameを定義する形で `` の内にスタイルを記述。

example.js
import React from 'react';
import { css } from 'emotion';

const App = () => {
  return(
    <div className={hoge}>
      <h1 className={titleClass}>Hello World</h1>
    </div>
);
};

const textClass = css`
  color:red;
`;

###2、通常のHTMLやCSSと違うこと
・1つのコンポーネントにつき、大元の親となるタグは1つだけ。
(上記のexample.jsでいうと、return()の一つ下の階層に配置できる要素は<div className={hoge}>の一つだけで、その<div>の内部の階層なら複数のタグを配置できる。)
・<img>や<input>など、通常のHTMLでは閉じタグがないタグでも、セルフクロージングタグが必要。

<img>NO
<img>NO</img>
<img />Available!

###3、スタイルのつけ方---タグ内に記述する場合
style={{プロパティ名:"値"}}

・{{}}内はオブジェクトである
・プロパティ名にハイフンが含まれる場合は、キャメルケースの記載に直す
 例: margin-bottom => marginBottom
・プロパティが複数ある場合は、","でつなぐ

example2.js
<div style={{marginBottom:"20px", color:"white"}}>example2</div>

###4、タグの属性の値に、JSの記述を使う
単純なことですが、つまづいたのでメモ。
例:オブジェクト"user"の、プロパティ"friendName"の値を、placeholderに表示されるようにする。
方法1

<input type="text" placeholder={"友達の" + user.friendName + "さんを紹介する"}></input>

方法2

<input type="text" placeholder={`友達の${user.friendName}さんを紹介する`}></input>

以上。


アウトプットの練習も兼ねて、学んだことを記事にしました。
React自体の理解が不十分な状態で書いておりますので、記事中に誤りなどあればご指摘頂けますと幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?