ホーム >>> HTML整理ノート

スタイルルールの追加と削除

■ルールを追加するメソッド
・IEの場合 ・・・stylesheetオブジェクト.addRule(セレクタ, 値, 位置)
  *位置は0から始まるindex番号。位置は省略可能、その場合末尾に挿入される
  (例)stylesheetオブジェクト.addRule("h2", "color:red", 1)
・IE以外 ・・・stylesheetオブジェクト.insertRule(セレクタ{値}, 位置)
  *位置は0から始まるindex番号。省略できない
  (例)stylesheetオブジェクト.insertRule("h2 {color:red}", 1)

■ルールを削除するメソッド
・IEの場合 ・・・stylesheetオブジェクト.removeRule(位置)
・IE以外 ・・・stylesheetオブジェクト.deleteRule(位置)

 * 位置は0から始まるindex番号

Sample

↑上の[ Sample ]の背景色と文字色を変更できます。
背景色:  文字色:  ・・・→

追加した全てのスタイルを削除し

Sample Source......................................................................>>>

<style type="text/css"><!--
   h2 {width:300px;font:16px 'Arial Black';color:black;border:3px double green;text-align:center;
}
--></style>

<script type="text/javascript"><!--
 function AddCss(){        //ルールの追加
   var sele1 = document.getElementById('bgc');
   var idx1 = sele1.selectedIndex;
   var bc = sele1[idx1].value;       //リストから背景色を取得
   var sele2 = document.getElementById('ftc');
   var idx2 = sele2.selectedIndex;
   var fc = sele2[idx2].value;       //リストから文字色を取得
   var str = "h2 {background-color:" + bc + ";color:" + fc + "}";  //IE以外の引数を作成
   var str_ie = "background-color:" + bc + ";" + "color:" + fc + ";";  //IE用の引数を作成
   var sheet = document.styleSheets[document.styleSheets.length - 1]; // 最後のスタイルシートを取得
   if(sheet.cssRules){    //IE以外の場合
       sheet.insertRule(str,sheet.cssRules.length);  //位置を末尾に指定
   }else{             //IEの場合
       sheet.addRule("h2", str_ie);   //位置は省略、末尾に追加される
   }
 }

 function ResetCss(){    //ルールの削除
   var sheet = document.styleSheets[document.styleSheets.length - 1]; // 最後のスタイルシートを取得
   if(sheet.rules){    //IEの場合
    //ルールの最後から削除していく。先頭から削除するとindex番号がズレてしまう
       for(var i=sheet.rules.length-1;i > 0;i--){
           sheet.removeRule(i);
       }
   }else{          //IE以外
       for(var i=sheet.cssRules.length-1;i > 0;i--){
           sheet.deleteRule(i);
       }
   }
 }
// --></script>
</head>

<body>
<h2>Sample</h2>
<p class="sample">↑上の[ Sample ]の背景色と文字色を変更できます。<br>
背景色:
<select id="bgc">
  <option value="white" selected>白色
  <option value="lavender">薄青色
  <option value="beige">薄黄色
   <option value="gainsboro">薄灰色
</select>
文字色:
<select id="ftc">
  <option value="black" selected>黒色
  <option value="darkblue">濃青色
  <option value="darkgreen">濃緑色
  <option value="red">赤色
</select>
 ・・・→<button id="bt" onclick="AddCss();">スタイルを追加</button></p>

<p>追加した全てのスタイルを削除し<button onclick="ResetCss()">初期値に戻す</button></p>