column

ITコラム

mv9665

プログラミングノウハウ

2018.04.03

jQuery【 CSS 】!important で優先度を変更するサンプル

CSS には 優先度についての様々なルールがありますが、!important 指定をして特定のスタイルを最優先で適用させることもできます。
そして、jQuery で !important 指定をする際には 記述方法にコツや注意点があります。
今回は、jQuery で !important 指定を行うサンプルについて、解説いたします。

jQuery を使用した CSS の設定方法等については、以下のページもご参照下さい。
jQuery【 CSS 】スタイルを動的に変更する
jQuery【 CSS 】colorとfontを変更するサンプル
jQuery【 CSS 】addClass、removeClass を使ってCSSを変更するサンプル
jQuery【 CSS 】toggleClass を使ってCSSの切り替えを行うサンプル
jQuery【 CSS 】プロパティの値を取得するサンプル
jQuery【 CSS 】!important で優先度を変更するサンプル(本ページ)
jQuery【 CSS 】hover でカーソルが当たった時の処理を実現するサンプル
jQuery【 CSS 】display を使用した表示・非表示に関するサンプル

なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。


1. jQuery で !important 指定をする方法

 
ブラウザは ルールに従って CSS の優先度を決定します( 詳しくはCSS 【 優先 順位 】 ~ 適用の仕組みをご参照下さい )が、最優先で適用させたいスタイルがある場合は、CSS で次のように !important 指定を行います。

.wkBox{skyblue:skyblue !important;}

 
そこで、jQuery で CSS に !important 指定をする際には、次のような記述をしたくなります。

$(".wkBox").css({"background-color" : "skyblue !important"});

しかし、この記述では !important 指定ができません。

jQuery で CSS に !important 指定をする際は、「 cssText 」を使用して 次のように記述します。

$(".wkBox").css({"cssText" : "background-color : skyblue !important"});

「 cssText 」は、要素のスタイル属性の値を取得・設定するプロパティで、CSS を動的に一括指定することができます。

上記のように、cssText プロパティに !important 指定を含めた CSS を一括して設定することで、!important 指定が有効となります。

▲目次へ戻る

 

2. cssText で !important を指定

 
jQuery で CSS に !important 指定を行い、背景色を変更します。
下のボックス内で任意の場所をクリックしてみて下さい。

 

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function() {
  $(".wkBox").click(function() {
    // !important を指定
    $(".wkBox").css({"cssText" : "background-color : skyblue !important"});
  });
});
</script>

<div class="wkBox" style="background-color:#CCC; height:100px;">
 
</div>

背景色の変更のみを意図していましたが、デフォルトで適用されていた CSS が全て排除されてしまったため、高さについての指定( height:100px; )が無効になってしまいました。

cssText プロパティを使用すると、HTML の style 属性で指定されていた CSS が全て無効となってしまうので、注意が必要です。

このような不具合を解消して、意図通りの結果を得るためには、次章のような工夫をします。

▲目次へ戻る

 

3. 特定の CSS のみ優先させる工夫

 
先ほどのサンプルを改修して、ボックスの高さはそのままで 背景色のみを変更します。
下のボックス内で任意の場所をクリックしてみて下さい。

 

 
上のサンプルのソースコードは次の通りです。

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function() {
  // デフォルトのCSSを保持
  let def = $(".wkBox2").attr("style");
  $(".wkBox2").click(function() {
    // 変更したいCSSを追加設定
    $(".wkBox2").css({"cssText" : def + "background-color : skyblue !important"});
  });
});
</script>

<div class="wkBox2" style="background-color:#CCC; height:100px;">
 
</div>

attr メソッドは、HTML要素の属性を取得・設定することができるメソッドです。
「 let def = $(“.wkBox2”).attr(“style”); 」として、style 属性で指定されている デフォルトの CSS 設定を 変数 def に格納しています。

そして、 デフォルトの CSS 設定に !important 指定付きの CSS を追加して cssText プロパティの設定を行っています。

▲目次へ戻る

4. まとめ

jQuery で !important 指定を行うサンプルについて、いかがでしたでしょうか。

「Webプログラマになりたいけど、独力では限界がある」と感じている方には、「プログラマカレッジ」がおすすめです。
プログラマカレッジ」は本気でプログラマを目指す方のための、就職支援付き、受講料無料のプログラミングスクールです。

今回ご紹介した「jQuery」を含む豊富なカリキュラムで、IT初心者からWebプログラマとして就職するまで、プロが完全にサポートします。
本気でプログラマとして就職・転職したいという方は、一度のぞいてみてはいかがでしょうか。

→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」

▲目次へ戻る

無料説明会

SHARE

最新記事

無料説明会に参加してみる

INTERNOUS,inc. All rights reserved.

無料オンライン説明会へ