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

CSSMediaRule.media - クエリ

mediaは、CSSMediaRuleのプロパティです。@mediaのクエリをMediaListで返します。

概要

名前
media
所属
CSSMediaRule
IDL
[SameObject, PutForwards=mediaText] readonly attribute MediaList media;
仕様書
https://drafts.csswg.org/css-conditional-3/#dom-cssmediarule-media

説明

@mediaのクエリをMediaListで返す。コンマ(,)で区切ってインデックスされる。

チュートリアル

@mediaのクエリをMediaListで表現した値を取得します。

<style>
@media (min-width: 250px), handheld and (orientation: landscape) {
	p#hoge { color: red ; }
	p#hoge { background-color: #fffff0 ; }
}
</style>
var styleSheet = document.styleSheets[0] ;
var cssRule = styleSheet.cssRules[0] ;	// CSSMediaRule
cssRule.media ;	// MediaList

cssRule.media[0] ;	// (min-width: 250px)
cssRule.media[1] ;	// handheld and (orientation: landscape)

このプロパティに値を代入した場合、MediaList.mediaTextに代入したのと同じ扱いになります。下記は同じ結果になります。

cssRule.media = "all" ;
cssRule.media.mediaText = "all" ;

デモ

CSSMediaRule.mediaのデモです。@mediaのCSSルールのプロパティを参照しています。

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

<!DOCTYPE html>
<head>
<style>
@media (min-width: 250px), handheld and (orientation: landscape) {
	p#hoge { color: red ; }
	p#hoge { background-color: #fffff0 ; }
}
</style>
<style>
	body { tab-size: 2 ; word-break: break-all ; }
	div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
<p id="hoge">SYNCER</p>
<hr>
<div id="result"></div>
<script>
var styleSheetList = document.styleSheets ;
var styleSheet = styleSheetList[0] ;
var cssRule = styleSheet.cssRules[0] ;
appendText( cssRule + "\n" ) ;
console.log( cssRule ) ;
console.log( cssRule.media ) ;

appendText( "\t" + "media: " + cssRule.media + "\n" ) ;

for( var i=0,l=cssRule.media.length; l>i; i++ ) {
	appendText( "\t\t" + "[" + i + "]" + cssRule.media[i] + "\n" ) ;
}

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

サポート状況

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