docs.rodeo

MDN Web Docs mirror

MediaQueryList

{{APIRef("CSSOM")}} 

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 {{DOMxRef("Window.matchMedia", "matchMedia()")}}  on the {{DOMxRef("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.

{{InheritanceDiagram}} 

Instance properties

The MediaQueryList interface inherits properties from its parent interface, {{DOMxRef("EventTarget")}} .

Instance methods

The MediaQueryList interface inherits methods from its parent interface, {{DOMxRef("EventTarget")}} .

Events

The following events are delivered to MediaQueryList objects:

Examples

This 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 appearance of the page.

const para = document.querySelector("p");
const 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 600 pixels wide */
    para.textContent = "This is a wide screen — more than 600px wide.";
    document.body.style.backgroundColor = "blue";
  }
}

mql.addEventListener("change", 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

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN