Top >
JavaScript > JavaScriptでCSSの擬似クラスを設定する方法
JavaScriptでCSSの擬似クラスを設定する方法
JavaScriptでCSSの擬似クラス(:link/:visited/:hover/:activeなど)を設定する方法を紹介します。
1.問題点
JavaScriptでCSSを設定する場合、例えばテキストリンクの色を設定するには、styleプロパティを利用して次のように記述します。
<a href="http://.../">foo</a>
<script>
var foo = document.getElementsByTagName('a');
foo[0].style.color = '#f00';
</script>
ですが、styleプロパティには擬似クラスがなく(というか、そもそもプロパティではない)、
- a:link
- a:visited
- a:hover
- a:active
などの設定方法が不明です。
注:jQueryは使わない前提とします。
2.擬似クラスを設定する
調べるといくつかやり方があるみたいですが、
が一番シンプルなのでそちらを紹介します。
擬似クラスを設定するには次のコードを利用します。
var css = 'a:link{color:#00f} a:visited{color:#518} a:hover{color:#f00}';
var style = document.createElement('style');
style.appendChild(document.createTextNode(css));
document.getElementsByTagName('head')[0].appendChild(style);
まず、変数CSSに定義したいCSSをそのまま記述します。
var css = 'a:link{color:#00f} a:visited{color:#518} a:hover{color:#f00}';
次にstyle要素を生成し、変数styleに保持します。
var style = document.createElement('style');
style要素のテキストノードとして変数CSSの内容を設定します。
style.appendChild(document.createTextNode(css));
最後に、head要素の子要素としてstyle要素を追加します。
document.getElementsByTagName('head')[0].appendChild(style);
以上です。
このテクニックは擬似クラスだけでなく、get系のメソッドを使ってCSSを設定する代替手段として利用できそうです。
Posted by yujiro このページの先頭に戻る
- 複数のsubmitボタンをonsubmitで判定する方法
- JavaScriptの時間を0パディングする方法
- JavaScriptでJSONデータを作る方法
- JavaScriptやjQueryで設定されたイベントの定義場所を調べる方法
- javascript:void(0)のまとめ
- setTimeout()やsetInterval()で引数を渡す方法
- JavaScriptのFormDataの使い方
- JavaScriptメールアドレスチェッカー
- PCのブラウザでiPhoneやAndroidのようなパスワードフォームを実現するJavaScriptライブラリ「FormTools」
- JavaScriptでフォーカスのあたっている要素を取得する「document.activeElement」
- 入力フォームの全角・半角を勝手に変換してくれるJavaScript
- JavaScriptエラーを表示・確認する方法のまとめ
- ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由
- JavaScriptの正規表現で文字列を抜き出す「グループ化」
- JavaScriptにおける引数や配列の要素数の制限について
トラックバックURL
コメントする
greeting