--- title: MediaQueryList slug: Web/API/MediaQueryList tags: - API - CSSOM View - Interface - MediaQueryList - NeedsTranslation - Reference - TopicStub translation_of: Web/API/MediaQueryList ---
A MediaQueryList object stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true).
This makes it possible to observe a document to detect when its media queries change, instead of polling the values periodically, and allows you to programmatically make changes to a document based on media query status.
The new version of the MediaQueryList interface inherits properties from its parent interface, {{domxref("EventTarget")}}.
true if the {{domxref("document")}} currently matches the media query list, or false if not.MediaListQuery instance in older browsers, for backwards compatibility purposes.The new version of the MediaQueryList interface inherits methods from its parent interface, {{domxref("EventTarget")}}.
MediaQueryListener that will run a custom callback function in response to the media query status changing. This is basically an alias for {{domxref("EventTarget.addEventListener()")}}, for backwards compatibility purposes.MediaQueryListener. This is basically an alias for {{domxref("EventTarget.removeEventListener()")}}, for backwards compatibility purposes.This simple example creates a MediaQueryList and then sets up a listener to detect when the media query status changes, running a custom function when it does to change the appearence of the page.
var para = document.querySelector('p');
var mql = window.matchMedia('(max-width: 600px)');
function screenTest(e) {
if (e.matches) {
/* the viewport is 600 pixels wide or less */
para.textContent = 'This is a narrow screen — less than 600px wide.';
document.body.style.backgroundColor = 'red';
} else {
/* the viewport is more than than 600 pixels wide */
para.textContent = 'This is a wide screen — more than 600px wide.';
document.body.style.backgroundColor = 'blue';
}
}
mql.addListener(screenTest);
Note: You can find this example on GitHub (see the source code, and also see it running live).
| Specification | Status | Comment |
|---|---|---|
| {{SpecName("CSSOM View", "#the-mediaquerylist-interface", "MediaQueryList")}} | {{Spec2("CSSOM View")}} | Initial definition |
{{Compat("api.MediaQueryList")}}