MediaQueryList

Vous lisez la version anglaise de ce contenu car il n’existe pas encore de traduction dans cette langue. Aidez-nous à traduire cet article !

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

A MediaQueryList object stores information on a media query applied to a document, with support for both immediate and event-driven matching against the state of the document. You can create a MediaQueryList by calling matchMedia() on the window object. The resulting object handles sending notifications to listeners when the media query state changes (i.e. when the media query test starts or stops evaluating to true).

This is very useful for adaptive design, since 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.

Properties

The new version of the MediaQueryList interface inherits properties from its parent interface, EventTarget.

MediaQueryList.matchesRead only
A Boolean that returns true if the document currently matches the media query list, or false if not.
MediaQueryList.mediaRead only
A DOMString representing a serialized media query

Methods

The new version of the MediaQueryList interface inherits methods from its parent interface, EventTarget.

MediaQueryList.addListener()
Adds a listener to the MediaQueryListener that will run a custom callback function in response to the media query status changing. This is basically an alias for EventTarget.addEventListener(), for backwards compatibility purposes.
MediaQueryList.removeListener()
Removes a listener from the MediaQueryListener. This is basically an alias for EventTarget.removeEventListener(), for backwards compatibility purposes.

Events

The following events are delivered to MediaQueryList objects:

change
Sent to the MediaQueryList when the result of running the media query against the document changes. For example, if the media query is (min-width: 400px), the change event is fired any time the width of the document's viewport changes to be less than 400 pixels or greater than that.
Also available using the onchange event handler property.

Examples

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).

You can find other examples on the individual property and method pages.

Specifications

Specification Status Comment
CSS Object Model (CSSOM) View Module
The definition of 'MediaQueryList' in that specification.
Working Draft Initial definition

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
MediaQueryList
Experimental
Chrome Full support 9Edge Full support YesFirefox Full support 6IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support YesChrome Android Full support 18Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support 5Samsung Internet Android ?
EventListener objects as parametersChrome Full support 45Edge ? Firefox Full support 55IE No support NoOpera No support NoSafari ? WebView Android Full support 45Chrome Android Full support 45Firefox Android Full support 55Opera Android No support NoSafari iOS ? Samsung Internet Android ?
MediaQueryList inheriting from EventTargetChrome Full support 45Edge Full support 16Firefox Full support 55IE No support NoOpera Full support YesSafari No support NoWebView Android Full support 45Chrome Android Full support 45Firefox Android Full support 55Opera Android Full support YesSafari iOS No support NoSamsung Internet Android ?
addListenerChrome Full support 9Edge Full support 12Firefox Full support 6IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support YesChrome Android Full support 18Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support 5Samsung Internet Android ?
matchesChrome Full support 9Edge Full support 12Firefox Full support 6IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support YesChrome Android Full support 18Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support 5Samsung Internet Android ?
mediaChrome Full support 9Edge Full support 12Firefox Full support 6IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support YesChrome Android Full support 18Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support 5Samsung Internet Android ?
onchangeChrome Full support 45Edge ? Firefox Full support 55IE No support NoOpera Full support YesSafari No support NoWebView Android Full support 45Chrome Android Full support 45Firefox Android Full support 55Opera Android Full support YesSafari iOS No support NoSamsung Internet Android ?
removeListenerChrome Full support 9Edge Full support 12Firefox Full support 6IE Full support 10Opera Full support 12.1Safari Full support 5.1WebView Android Full support YesChrome Android Full support 18Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support 5Samsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.

See also