JavaScriptを利用して、CSSファイルを動的に差し替えてスタイルを変更するコードを紹介します。
概要
ボタンやリンクのクリックでページにリンクされているCSSファイルを変更して、動的にページのスタイルを変更したい場合があります。
この記事ではJavaScriptを利用して、ページにリンクされているCSSファイルを動的に変更するコードを紹介します。
JavaScriptでCSSファイルを変更するには、linkタグにIDを記述し、document.getElementById() メソッドを呼び出しlinkタグのDOMオブジェクトを取得します。
取得したDOMオブジェクトのhrefプロパティに変更したいスタイルシートのファイル名を代入することで、CSSファイルを動的に差し替えることができます。
プログラム例
コード
以下のHTMLファイルとCSSを準備します。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link id="PageStyleSheet" rel="stylesheet" href="Style1.css" />
<script type="text/javascript">
function changeStyleSheet() {
var elem = document.getElementById("PageStyleSheet");
elem.href = "Style2.css";
}
</script>
</head>
<body>
<p class="title">CSSファイル変更デモ</p>
<div class="frame1">
枠1<br />
ABCDEFG<br />
1234567<br />
</div>
<p><a href="javascript:changeStyleSheet();">スタイルシート変更</a></p>
</body>
</html>
body {
}
.title {
color:#005b9c;
font-size:2rem;
}
.frame1 {
color: #F0F0f0;
background-color: #494949;
border: 1px solid #202020;
}
body {
background-color:#464331;
}
.title {
color:#ff6a00;
font-size:2rem;
}
.frame1 {
color: #2e1300;
background-color: #ffed89;
border: 1px solid #c78c00;
}
解説
linkタグでスタイルシートとリンクします。リンク先のスタイルシートは Style1.css ファイルを指定します。
linkタグにid属性を記述します。idを設定することで、getElementById() メソッドでlinkタグの要素を取得できるようにします。
<link id="PageStyleSheet" rel="stylesheet" href="Style1.css" />
changeStyleSheet() 関数を定義します。
document.getElementById() メソッドを呼び出し link タグのDOMオブジェクト要素を取得します。
取得した要素の href プロパティに "Style2.css" を代入することで、linkタグのhref属性の値を動的に変更できます。
変更により、Style2.css のスタイルが反映されたページに切り替わります。
<script type="text/javascript">
function changeStyleSheet() {
var elem = document.getElementById("PageStyleSheet");
elem.href = "Style2.css";
}
</script>
HTMLファイルでは、「スタイルシート変更」のリンクがクリックされると、changeStyleSheet()関数を呼び出しスタイルシートの差し替えを実行します。
<p><a href="javascript:changeStyleSheet();">スタイルシート変更</a></p>
実行結果
上記のHTMLファイルをWebブラウザで表示します。
下図のページが表示されます。
ページ下部の[スタイルシート変更]のリンクをクリックします。CSSファイルが差し替えられページのデザインが変わります。
JavaScriptでリンクしているCSSファイルを動的に変更できました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-03-16
作成日: 2021-03-15