home
twitter
ページトップへ
目次
  • 「JavaScript」を使ってスタイルを変更する方法とは?
  • 「Element.style」の使い方!
  • 「element.style」でインラインスタイルの設定をする
  • 複数行書ける
  • 注意点:インラインスタイルが上書きされる
  • 個別のCSSのプロパティに対して値をセットする
  • 「空文字列」で「既存のインラインスタイル」を「リセット」する
  • 大量のスタイルの指定が必要な場合は「classList」を使うといい!
  • 参考リンク!
  • まとめ!
about
categories
page
archive
皇帝ペンギンブログ

2024/12/04 (更新日:2024/12/04)

【JavaScript】CSSのスタイルを変更する方法!【Element.style】

Categories > JavaScriptの入門編
こんばんは!初めましての方は初めまして!
しゅーた(@chibasyuta)です!

Web制作をしていると、「ボタンの色をクリックで変えたい」や「スクロール時に背景色を動的に変更したい」といった場面に出くわすことがありますよね。今回は、JavaScriptを使ってHTML要素のCSSスタイルを変更する方法を詳しく解説します!

この記事では以下の内容を扱います。

この記事の内容!

  • 「JavaScript」を使ってスタイルを変更する方法とは?
  • 「Element.style」の使い方!
また、下の動画でも「JavaScript」を使って「CSSのスタイル」を「変更」する方法について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それでは内容へ入ります!

目次
非表示
  • 「JavaScript」を使ってスタイルを変更する方法とは?
  • 「Element.style」の使い方!
  • 「element.style」でインラインスタイルの設定をする
  • 複数行書ける
  • 注意点:インラインスタイルが上書きされる
  • 個別のCSSのプロパティに対して値をセットする
  • 「空文字列」で「既存のインラインスタイル」を「リセット」する
  • 大量のスタイルの指定が必要な場合は「classList」を使うといい!
  • 参考リンク!
  • まとめ!

「JavaScript」を使ってスタイルを変更する方法とは?

まず、「JavaScript」を使ってスタイルを変更する方法は下記のものがあります。

  • 「クラス属性の値」を変更する
  • 「インラインスタイル」に新しいスタイルを記述する

そしてこの記事では「インラインスタイルに新しいスタイルを記述する」の方法を扱います。

なので「クラス属性の値」を変更するについては言及しませんが、下記の記事で「クラス属性の値」を変更する方法について解説していますので、もし気になる方はこちらをどうぞ!

【JavaScript】要素のクラス属性の値を操作する方法!【className, classList, add(), remove(), contains(), toggle()】

関連記事

「Element.style」の使い方!

「element.style」を使うことで特定の要素に対して「インラインスタイルの設定」をすることができます。

このプロパティに値を代入することで、スタイルを変更することが可能です。

「element.style」でインラインスタイルの設定をする

let box = document.querySelector(".box");

box.style = "background-color: red";
<div class="box" style="background-color: red;"></div>

このように要素のインラインスタイルの設定をすることができます。

複数行書ける

let box = document.querySelector(".box");

box.style = "background-color: red; width: 100px";
<div class="box" style="background-color: red; width: 100px;"></div>

このように複数書くこともできます。

注意点:インラインスタイルが上書きされる

既に要素にインラインスタイルの設定がある場合は、単純に「element.style」を使うとそれが上書きされてしまうので、そこは注意が必要です。

対策としては、個別のCSSのプロパティに対して値をセットする、というのがあります。それは口述しますね。

個別のCSSのプロパティに対して値をセットする

<div class="box" style="height: 100px"></div>
box.style.backgroundColor = "red";

↓

<div class="box" style="background-color: red;height: 100px"></div>

このように「Elemetn.style.backgroundColor」と書くことで既存のインラインスタイルを残したまま、そこに追加する形でスタイルを当てることができます。

ポイントは下記です。

  • 「style.」に続けてCSSのプロパティ名を書けばOK!
  • 「background-color」のように「-」ハイフンが入るものはキャメルケースに変換

まずは、「style.」に続けてCSSのプロパティ名を書けば、そのプロパティの値を個別に設定することができます。

そして、「background-color」のように「-」ハイフンが入るものはキャメルケースに変換して書く、というルールがあるので注意してください。

background-color → backgroundColor
font-size → fontSize
border-radius → borderRadius

この方法で、既存のインラインスタイルを残しながら、個別にインラインスタイルを追加することができる感じ。

ただし、既存のインラインスタイルと競合する場合は「JavaScript」で書いた方のスタイルが優先されるます。

複数のプロパティを追加するには、複数行書く必要がある
const box = document.getElementById('box');
box.style.width = "200px";
box.style.height = "200px";
box.style.backgroundColor = "green";

このように、複数のインラインスタイルを追加することもできます。その場合は一行では書けないので、複数行の「JavaScript」を書く必要がありますね。

「空文字列」で「既存のインラインスタイル」を「リセット」する

box.style.backgroundColor = "";

空文字列をセットすれば、既存のインラインスタイルをリセットすることができます。

大量のスタイルの指定が必要な場合は「classList」を使うといい!

大量のスタイル変更が必要な場合、「classList」を使ってクラスを追加・削除する方が効率的です。
element.classList.add('new-class'); // クラスを追加
element.classList.remove('old-class'); // クラスを削除

「classList」の使い方については下記の記事で解説しています。

【JavaScript】要素のクラス属性の値を操作する方法!【className, classList, add(), remove(), contains(), toggle()】

関連記事

参考リンク!

仕様書。
https://drafts.csswg.org/cssom/#dom-elementcssinlinestyle-style

MDN。
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/style

まとめ!

まず、「JavaScript」を使ってスタイルを変更する方法は下記のものがあります。

  • 「クラス属性の値」を変更する
  • 「インラインスタイル」に新しいスタイルを記述する

「element.style」を使うことで特定の要素に対して「インラインスタイルの設定」をすることができます。

「Element.style.backgroundColor」のように書くことで個別のCSSのプロパティに対して値をセットすることも可能。

こんな感じですかね!
また、下の動画でも「JavaScript」を使って「CSSのスタイル」を「変更」する方法について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それではまた!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.