JavaScriptで見た目を変更する方法|style・display・classListを初心者向けに解説【第12講】

前回の第11講ではイベント処理について学習しました。

ボタンのクリックや文字入力など、ユーザーの操作に反応してJavaScriptを実行できるようになりました。

また、第10講ではDOM操作を学習し、HTML要素の内容を書き換える方法も身につけました。

今回はさらに一歩進んで、JavaScriptからWebページの見た目を変更する方法を学習します。

実際のWebサイトでは、

  • ボタンを押したら色が変わる
  • エラー時に文字が赤くなる
  • メニューが開閉する
  • 要素が表示されたり消えたりする

といった処理が頻繁に行われています。

これらはJavaScriptからCSSを操作することで実現されています。

HTML・CSS・JavaScriptの役割を復習しよう

Webページは主に次の3つの技術で構成されています。

技術 役割
HTML 構造を作る
CSS 見た目を整える
JavaScript 動きを付ける

HTMLがページの構造を作り、CSSが見た目を整え、JavaScriptが動きを担当します。

JavaScriptからCSSを変更できる

例えば次のHTMLを考えてみましょう。

<p id="message">
こんにちは
</p>

CSSで文字色を指定すると次のようになります。

#message {
  color: blue;
}

しかしJavaScriptでCSSを変更すると、表示中の見た目を動的に変更できます。

const message =
document.getElementById("message");

message.style.color = "red";

このコードを実行すると文字色が赤に変わります。

つまり、

  • CSSが見た目を決める
  • JavaScriptがCSSを変更する

という関係になります。

styleとは?

JavaScriptから見た目を変更する場合はstyleを使用します。

基本構文は次の通りです。

要素.style.プロパティ名 =
"値";

styleを使うことで文字色や背景色、文字サイズなどを変更できます。

文字色を変更する(color)

message.style.color =
"red";

colorは文字色を変更するためのプロパティです。

背景色を変更する(backgroundColor)

message.style.backgroundColor =
"yellow";

backgroundColorを使うと背景色を変更できます。

CSSとJavaScriptの書き方の違い

CSSでは次のように記述します。

background-color

しかしJavaScriptでは次のように記述します。

backgroundColor

同様に、

font-size

はJavaScriptでは次のようになります。

fontSize

JavaScriptではハイフンを使わず、後ろの単語の先頭を大文字にします。

文字サイズを変更する(fontSize)

message.style.fontSize =
"30px";

fontSizeを使うと文字サイズを変更できます。

単位に注意しよう

サイズを指定する場合は単位が必要です。

message.style.fontSize =
"30px";

pxを付け忘れないようにしましょう。

イベント処理と組み合わせる

第11講で学習したイベント処理と組み合わせることで、ユーザー操作に応じて見た目を変更できます。

ボタンをクリックして文字色を変更する

<p id="message">
こんにちは
</p>

<button id="btn"> 変更 </button>

const message =
document.getElementById("message");

const btn = document.getElementById("btn");
btn.addEventListener( "click", function () { message.style.color = "red"; } );

ボタンをクリックすると文字色が赤に変わります。

表示・非表示を切り替える(display)

実際のWebサイトで非常によく使われるのがdisplayです。

message.style.display =
"none";

displayにnoneを指定すると要素が非表示になります。

message.style.display =
"block";

blockを指定すると再び表示されます。

displayが使われる場面

  • ハンバーガーメニュー
  • FAQの開閉
  • アコーディオンメニュー
  • モーダルウィンドウ
  • ポップアップ画面

displayはWebサイトやWebアプリで頻繁に利用されています。

inputイベントと組み合わせる

<input id="name">

<p id="result"> 文字を入力してください </p>

const name =
document.getElementById("name");

const result = document.getElementById("result");
name.addEventListener( "input", function () { result.style.color = "blue"; } );

入力を始めると文字色が変化します。

イベント処理とstyleを組み合わせることで、動きのある画面を作成できます。

発展知識:classListとは?

実際のWeb開発ではstyleを直接変更する代わりに、CSSクラスを付け外しする方法もよく利用されます。

element.classList.add(
  "active"
);

クラスを追加する場合はaddを使用します。

element.classList.remove(
  "active"
);

クラスを削除する場合はremoveを使用します。

まずはstyleを使った操作に慣れ、その後classListも活用できるようになりましょう。

まとめ

  • CSSは見た目を担当する
  • JavaScriptはCSSを変更できる
  • styleを使うと見た目を変更できる
  • colorで文字色を変更できる
  • backgroundColorで背景色を変更できる
  • fontSizeで文字サイズを変更できる
  • displayで表示・非表示を切り替えられる
  • イベント処理と組み合わせると動的な画面を作れる

今回学習した内容は実際のWebサイトやWebアプリでも頻繁に利用されています。

特にdisplayによる表示切り替えは今後のミニアプリ制作でも重要になるため、しっかり身につけておきましょう。

コメント

タイトルとURLをコピーしました