The scripting CSS @media media feature can be used to apply styles based on whether scripting (such as JavaScript) is available.


The scripting feature is specified as a keyword value chosen from the list below.

Scripting is completely unavailable on the current document.
Scripting is enabled during the initial page load, but not afterwards.
Scripting is supported and active on the current document.



<p class="script-none">You do not have scripting available. :-(</p>
<p class="script-initial-only">Your scripting is only enabled during the initial page load. Weird.</p>
<p class="script-enabled">You have scripting enabled! :-)</p>


p {
  color: lightgray;

@media (scripting: none) {
  .script-none {
     color: red;

@media (scripting: initial-only) {
  .script-initial-only {
    color: red;

@media (scripting: enabled) {
  .script-enabled {
    color: red;



Specification Status Comment
Media Queries Level 4
The definition of 'scripting' in that specification.
Candidate Recommendation Deferred to Media Queries Level 5.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support No support[1] No support[2] No support No support No support
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support No support No support No support No support

[1] Blink does not implement this feature yet. See Chromium bug #489957.

[2] Gecko does not implement this feature yet. See bug 1166581.

Document Tags and Contributors

Contributors to this page: mfluehr, Sebastianz, cvrebert, kscarfone
Last updated by: mfluehr,