ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript を使用して疑似クラスのスタイルを変更する方法

JavaScript を使用して疑似クラスのスタイルを変更する方法

小云云
小云云オリジナル
2017-11-29 09:42:163372ブラウズ

CSS 疑似クラスについては聞いたことがあると思いますが、JavaScript にも疑似クラスがあることはよく知られています。プロジェクトでは、JavaScript を使用して疑似要素 (:before、:after) のスタイルを動的に制御する必要があることがよくあります。 JavaScript または jQuery には疑似クラス セレクターがないこと。ここでは、いくつかの一般的な方法をまとめます。

HTML

<p class="red">Hi, this is a plain-old, sad-looking paragraph 
tag.</p>
CSS
.red::before {
content: &#39;red&#39;;
color: red;
}

方法 1

JavaScript または jQuery を使用して e388a4556c0f65e1904146cc1a846bee 要素のクラス名を切り替え、スタイルを変更します。

.green::before {
content: &#39;green&#39;;
color: green;
}
$(&#39;p&#39;).removeClass(&#39;red&#39;).addClass(&#39;green&#39;);

方法 2

新しいスタイルを既存の c9ccee2e6ea535a969eb3f532ad9fe89 に動的に挿入します。

document.styleSheets[0].addRule(&#39;.red::before&#39;,&#39;color: green&#39;);
document.styleSheets[0].insertRule(&#39;.red::before { color: green }&#39;, 0);

方法 3

JavaScript または jQuery を使用して新しいスタイル シートを作成し、 に挿入します

// Create a new style tag
var style = document.createElement("style");
// Append the style tag to head
document.head.appendChild(style);
// Grab the stylesheet object
sheet = style.sheet
// Use addRule or insertRule to inject styles
sheet.addRule(&#39;.red::before&#39;,&#39;color: green&#39;);
sheet.insertRule(&#39;.red::before { color: green }&#39;, 0);

jQuery

$(&#39;<style>.red::before{color:green}</style>&#39;).appendTo(&#39;head&#39;);

方法 4

HTML5 の data-attribute を使用し、attr( ) を属性に追加して動的に変更します。

<p class="red" data-attr="red">Hi, this is plain-old, sad-looking paragraph tag.</p>
.red::before {
content: attr(data-attr);
color: red;
}
$(&#39;.red&#39;).attr(&#39;data-attr&#39;, &#39;green&#39;);

以上は、JavaScript を使用して疑似クラスのスタイルを変更する方法についてまとめた 4 つの方法です。皆様のお役に立てれば幸いです。

関連する推奨事項:

CSS3疑似クラスを使用して3Dボタンを作成する方法の分析例

CSSのフォーカス疑似クラスの使用例の詳細な説明

疑似クラスセレクターの概要

以上がJavaScript を使用して疑似クラスのスタイルを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。