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

StyleSheet.media - メディア

mediaは、StyleSheetのプロパティです。スタイルシートが適用されるメディアをMediaListで返します。ここでいうメディアは要素のmedia属性で設定できます。

概要

名前
media
所属
StyleSheet
IDL
[SameObject, PutForwards=mediaText] readonly attribute MediaList media;
仕様書
https://drafts.csswg.org/cssom/#dom-stylesheet-media

説明

メディアの情報をMediaListで返す。

チュートリアル

StyleSheet.mediaを取得する例です。

<style media="all">
body {
	color: red ;
}
</style>
var cssStyleSheet = document.styleSheets[0] ;	// <style media="all"> ... </style>
cssStyleSheet.media ;	// MediaList ("all")

StyleSheet.mediaには値を代入して変更できます。このプロパティに値を代入すると、MediaList.mediaTextに値を代入するのと同じ扱いになります。下記は2つとも同じ結果になります。

cssStyleSheet.media = "print" ;
cssStyleSheet.media.mediaText = "print" ;

デモ

StyleSheet.mediaのデモです。

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

<!DOCTYPE html>
<head>
<style media="all">
	body { tab-size: 2 ; word-break: break-all ; }
	p { color: purple ; }
	div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
<p>SYNCER</p>
<hr>
<div id="result"></div>
<script>
var styleSheetList = document.styleSheets ;

for( var i=0,l=styleSheetList.length; l>i; i++ ) {
	var styleSheet = styleSheetList[i] ;
	console.log( styleSheet ) ;

	appendText( "StyleSheetList[" + i + "]: " + styleSheet + "\n" ) ;
	appendText( "\t" + "type: " + styleSheet.type + "\n" ) ;
	appendText( "\t" + "href: " + styleSheet.href + "\n" ) ;
	appendText( "\t" + "ownerNode: " + styleSheet.ownerNode + "\n" ) ;
	appendText( "\t" + "parentStyleSheet: " + styleSheet.parentStyleSheet + "\n" ) ;
	appendText( "\t" + "title: " + styleSheet.title + "\n" ) ;
	appendText( "\t" + "media: " + styleSheet.media + "\n" ) ;
	appendText( "\t\t" + "MediaList.mediaText: " + styleSheet.media.mediaText + "\n" ) ;
	appendText( "\t" + "disabled: " + styleSheet.disabled + "\n" ) ;

	var cssRules = styleSheet.cssRules ;

	if ( cssRules ) {
		for( var ii=0,ll=cssRules.length; ll>ii; ii++ ) {
			appendText( "\t" + "cssRules[" + ii + "]: " + cssRules[ii].cssText + "\n" ) ;	
		}
	}

	appendText( "\n" ) ;
}

function appendText ( text ) {
	document.getElementById( "result" ).appendChild( document.createTextNode( text ) ) ;
}
</script>
</body>
</html>

サポート状況

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