カテゴリ: React 更新日: 2026/01/14

ReactのstyleとclassNameの使い方を解説!初心者向けにJSXでの装飾方法をやさしく説明

JSXでstyleとクラスを組み合わせる方法
JSXでstyleとクラスを組み合わせる方法

先生と生徒の会話形式で理解しよう

生徒

「Reactで文字の色とかサイズを変えたりってできますか?」

先生

「はい、Reactではstyle属性やclassName属性を使えば、見た目を自由に変えられますよ。」

生徒

「styleとclassNameってどう違うんですか?一緒に使えるんですか?」

先生

「とても良い質問です。それでは、JSXでのstyleとclassNameの使い方をわかりやすく解説していきましょう!」

1. React(JSX)でstyleを使って見た目を変える

1. React(JSX)でstyleを使って見た目を変える
1. React(JSX)でstyleを使って見た目を変える

ReactではHTMLのように見えるコードを書くことができますが、実は裏側ではJavaScriptで動いています。このHTMLのような記述をJSX(ジェイエスエックス)と呼びます。

通常のHTMLでは、見た目を変えるためにstyle="color:red;"のように書きますが、ReactのJSXでは少し書き方が違います。

JSXでstyleを指定する場合は、JavaScriptのオブジェクト形式で書きます。オブジェクトとは、{ }の中にキーと値のセットを書いたものです。

また、CSSではfont-sizeと書きますが、JSXではfontSizeのようにキャメルケース(単語の区切りを大文字にする)で書きます。

2. ReactでclassNameを使ってCSSクラスを指定する

2. ReactでclassNameを使ってCSSクラスを指定する
2. ReactでclassNameを使ってCSSクラスを指定する

Reactでは、classではなくclassNameという属性を使います。これは、classという単語がJavaScriptの予約語(特別な意味を持つ言葉)だからです。

HTMLやCSSを勉強したことがある人なら、class="box"のように書いた経験があるかもしれませんが、Reactでは次のように書きます。


<div className="box">こんにちは</div>

このように書くと、外部のCSSファイルで.boxというクラスに定義したスタイルが適用されます。

3. JSXでstyleとclassNameを組み合わせて使う

3. JSXでstyleとclassNameを組み合わせて使う
3. JSXでstyleとclassNameを組み合わせて使う

では、Reactでstyle属性とclassName属性を同時に使うことはできるのでしょうか?答えはできます!

例えば、クラスで基本のデザインを整えておいて、一部だけインラインで色などを変更したい場合には以下のように書きます。


<div className="box" style={{ color: "blue", fontSize: "20px" }}>
  カスタムスタイルとクラスの組み合わせ
</div>

このコードでは、boxというCSSクラスが適用されながら、さらに文字色とサイズがJSX内で直接指定されています。

(画面に「カスタムスタイルとクラスの組み合わせ」と青い大きな文字で表示されます)

4. 実際にReactで書いてみよう!styleとclassNameの実践コード

4. 実際にReactで書いてみよう!styleとclassNameの実践コード
4. 実際にReactで書いてみよう!styleとclassNameの実践コード

ここでは、ReactのuseStateを使って、ボタンを押すと文字の色を変える例を紹介します。


import React, { useState } from "react";
import "./App.css"; // CSSファイルを読み込む

function App() {
  const [isRed, setIsRed] = useState(false);

  const textStyle = {
    color: isRed ? "red" : "black",
    fontWeight: "bold"
  };

  return (
    <div className="container" style={{ padding: "20px" }}>
      <p className="text-box" style={textStyle}>
        色が変わるテキスト
      </p>
      <button onClick={() => setIsRed(!isRed)}>色を切り替える</button>
    </div>
  );
}

export default App;
(画面に「色が変わるテキスト」と表示され、ボタンを押すたびに文字の色が黒と赤で切り替わります)

5. クラス名とstyle属性をうまく使い分けよう

5. クラス名とstyle属性をうまく使い分けよう
5. クラス名とstyle属性をうまく使い分けよう

Reactでは、classNameで共通のスタイルを作っておき、styleで動的に変化する部分を記述すると、コードが見やすくなります。

たとえば、ボタンの背景色や文字サイズなどはCSSクラスで管理して、状況によって変える色だけをJSXで管理するのがオススメです。

これは、チーム開発や後からスタイルを修正するときにも便利ですし、CSSファイルにまとめておくことで再利用もできます。

6. styleの書き方の注意点(単位やハイフン)

6. styleの書き方の注意点(単位やハイフン)
6. styleの書き方の注意点(単位やハイフン)

Reactのstyleでは、数値に単位が必要な場合は文字列で書きます。例えばfontSize: "20px"のようにpxをつけます。

また、CSSで使うbackground-colorのようなハイフン区切りは使えません。ReactではbackgroundColorのようにキャメルケースで書く必要があります。

これはReactがJavaScriptの中でスタイルを扱うためのルールです。最初は慣れないかもしれませんが、使っているうちに自然と覚えられます。

7. 外部CSSファイルと組み合わせるともっと便利に

7. 外部CSSファイルと組み合わせるともっと便利に
7. 外部CSSファイルと組み合わせるともっと便利に

style属性は便利ですが、全てをJSXで書くと見づらくなることがあります。特にスタイルが複雑になると、コードがゴチャゴチャしてしまいます。

そんなときは、外部のCSSファイル(たとえばApp.css)を使って、共通のスタイルはclassNameで適用し、動的に変えたい部分だけをstyleで指定すると良いでしょう。

ReactではCSSとJSXをうまく使い分けることで、よりスッキリとしたコードが書けるようになります。

まとめ

まとめ
まとめ

ReactのstyleとclassNameの使い方を振り返ると、まずJSXでスタイルを記述する方法として「オブジェクト形式のstyle」と「CSSクラスを指定するclassName」という二つのアプローチがあることが理解できます。どちらも見た目を整えるために重要な役割を果たしますが、それぞれに得意な場面があり、適切に使い分けることが大切です。とくにReact初心者がつまずきやすいポイントとして、JSXでは通常のHTMLと異なり、style属性がJavaScriptのオブジェクトであるという点があります。色やサイズを指定するときにも、キャメルケースや文字列の形式で値を書く必要があり、慣れるまでは戸惑うかもしれませんが、実際に手を動かしながら覚えることで自然に書けるようになります。 また、classNameを使うことでCSSファイルに記述したスタイルを再利用でき、コードの可読性も向上します。特に規模が大きくなるほどclassNameを中心にデザインを構築し、JSX内では動的に変化する部分だけをstyleで調整するという方法が効果的です。静的なスタイルはCSS、動的な部分はJSXのstyleという分担により、見た目の管理が明確になり、後からの修正もしやすくなります。アプリケーションの状態に応じて色や大きさを変えたい場合にはuseStateとstyleを組み合わせた記述が役立ち、実際の操作に反応してデザインが変わる仕組みを作ることで、よりインタラクティブで魅力的な画面を実現できます。 さらに、styleとclassNameを併用することで、既存デザインを保持しつつ部分的な変更も柔軟に加えられるため、細かい見た目の調整において非常に便利です。Web制作では日常的に必要になる考え方でもあり、Reactの基礎として身につけておくと、その後のコンポーネント開発やUI設計にも大きく役立ちます。今回の内容では、基本的な書き方から、動的スタイル、CSSファイルとの組み合わせまで幅広く触れることで、Reactでスタイルを扱う具体的なイメージがつかみやすくなりました。スタイル操作ができるようになることで、ユーザーにとって見やすく、分かりやすい画面構成を作れるため、フロントエンド開発の基礎として理解しておきたい重要な知識です。ここまで学んだ内容を踏まえて、Reactでのデザイン表現をさらに広げる土台として活用していきましょう。

実際のJSXスタイル記述サンプル

まとめとして、styleとclassNameを併用したサンプルコードを再掲します。


function Sample() {
  const styleBox = { color: "green", fontSize: "24px" };
  return (
    <div className="sample-box" style={styleBox}>
      サンプルのスタイル適用
    </div>
  );
}

このサンプルでは、classNameで共通スタイルを適用しながら、色やサイズといった動的に変更したい部分をstyle属性で指定しています。Reactの画面構成では、このように複数の方法を組み合わせることで柔軟な UI 表現が可能になります。classNameによる外部CSSの利用と、styleによるインライン調整を使い分けることで、アプリ全体の見た目を整えつつ変更にも強い構造を作ることができます。

先生と生徒の振り返り会話

生徒

「styleはオブジェクトで書くっていうのが最初は難しく感じました。でも実際に書いてみると分かりやすくなってきました!」

先生

「慣れるまでは少し戸惑うけれど、Reactではとてもよく使う書き方なので自然と書けるようになりますよ。」

生徒

「classNameとstyleを一緒に使えるって知らなかったです。場面によって使い分けられるのは便利ですね。」

先生

「そうなんです。共通部分はCSS、変更される部分はstyleというように分けると、開発がとてもスムーズになります。」

生徒

「これでReactで見た目を自由に調整できそうです!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Reactで文字の色やサイズを変更するにはどうすればいいですか?

Reactでは、JSX内でstyle属性を使うことで文字の色やサイズを変更できます。styleはJavaScriptのオブジェクト形式で記述し、プロパティ名はキャメルケースで書くのが特徴です。
カテゴリの一覧へ
新着記事
New1
React
Reactコンポーネントの再利用と分割を完全マスター!初心者でもわかるコンポーネント設計
New2
React
ReactでAxiosインターセプターの使い方を完全ガイド!初心者でもわかるリクエストとレスポンスの処理方法
New3
React
JSXの書き方!初心者でもわかるReactタグと属性の基本ルール解説
New4
React
ReactとDockerを使った開発環境構築の基本を徹底解説!初心者でもわかるReactとDockerの連携方法
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.5
Java&Spring記事人気No5
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介