SYNCERのロゴ
アイキャッチ画像

CSSStyleSheet.deleteRule() - ルールを削除する

deleteRule()は、CSSStyleSheetのメソッドです。スタイルシートのCSSルールを1つ削除します。

概要

名前
deleteRule
所属
CSSStyleSheet
IDL
void deleteRule(unsigned long index);
仕様書
https://drafts.csswg.org/cssom/#dom-cssstylesheet-deleterule

説明

引数(index)には、インデックス番号を指定します。指定すると、このインデックス番号のCSSルールが削除され、そこ以降に元々あったCSSルールは前に1つずつずれます。省略した場合、0を指定した扱いになり、先頭のCSSルールが削除されます。

デモ

CSSStyleSheet.deleteRule()のデモです。1つ目のstyle要素のスタイルシートを対象にメソッドを実行します。先頭のCSSルールを削除します。テキストの装飾に影響が出るので確認してみましょう。

<!-- このコードは編集できます。 -->

<!DOCTYPE html>
<head>
<style>
	p#hoge { font-weight: 700 ; }
	p#hoge { text-decoration: underline ; }
	p#hoge { border: 1px solid #888 ; }
	p#hoge { background-color: #fffff8 ; }
</style>
<style>
	body { tab-size: 2 ; word-break: break-all ; }
	div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
	<p><button id="insert">[0]にCSSルールを追加</button></p>
	<p><button id="delete">[0]のCSSルールを削除</button></p>
<hr>
	<p id="hoge">SYNCER</p>
<hr>
<div id="result"></div>
<script>
var styleSheetList = document.styleSheets ;
	var styleSheet = styleSheetList[0] ;

document.getElementById( "insert" ).onclick = function () {
	styleSheet.insertRule( "p#hoge{ color: red ; }" ) ;
	getCSSInfo() ;
}

document.getElementById( "delete" ).onclick = function () {
	styleSheet.deleteRule( 0 ) ;
	getCSSInfo() ;
}

function getCSSInfo () {
	document.getElementById( "result" ).textContent = "" ;

	console.log( styleSheet ) ;
	appendText( styleSheet + "\n" ) ;

	var cssRuleList = styleSheet.cssRules ;
	appendText( "cssRules: " + cssRuleList + "\n" ) ;

	for( var ii=0,ll=cssRuleList.length; ll>ii; ii++ ) {
		var cssRule = cssRuleList[ii] ;
		appendText( "\t" + "[" + ii + "]" + cssRule + "\n" ) ;
		appendText( "\t\t" + "type: " + cssRule.type + "\n" ) ;
		appendText( "\t\t" + "cssText: " + cssRule.cssText + "\n" ) ;
		appendText( "\t\t" + "parentRule: " + cssRule.parentRule + "\n" ) ;
		appendText( "\t\t" + "parentStyleSheet: " + cssRule.parentStyleSheet + "\n" ) ;
	}

	appendText( "\n" ) ;
}

function appendText ( text ) {
	document.getElementById( "result" ).appendChild( document.createTextNode( text ) ) ;
}

getCSSInfo() ;
</script>
</body>
</html>

サポート状況

ChromeFirefoxSafariEdgeIEOperaiOS SafariAndroid
9+
  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年10月15日 (日)
コンテンツを公開しました。