如果未启用javascript,请定义css

Tho*_*ggi 8 javascript jquery

我想定义.exampleclass img {height:250px}是否启用了javascript.他们无论如何要在javascript/jquery中撤消这个?

Kyl*_*yle 20

你可以使用HTML的noscript标签.

<noscript>
    <style type="text/css">
        .exampleclass img {height:250px}
    </style>
</noscript>
Run Code Online (Sandbox Code Playgroud)

编辑:我实际上将斯蒂芬的回答视为最好的.虽然上述方法可能有效,但可能无效/遵循最佳做法.

斯蒂芬回答:

在你的body元素上放一个"no-js"类,然后在加载时用JS删除它,并在CSS的选择器中使用.no-js

该类也可以放在您的html元素上,然后在JavaScript不可用时应该出现的所有样式都可以html.no-js在选择器之前加上前缀.例如,HTML5 Boiler Plate就是这样做的.


Ste*_*hen 10

在你的body元素上放一个"no-js"类,然后在加载时用JS删除它,并在CSS的选择器中使用.no-js


rah*_*hul 7

尝试

<noscript>
    <style type="text/css">
        .exampleclass img {height:250px}
    </style>
</noscript>
Run Code Online (Sandbox Code Playgroud)

Noscript


mpl*_*jan 6

有一天我们可能会拥有这个

目前在 Chrome 105 OSX 中不活跃

https://developer.mozilla.org/en-US/docs/Web/CSS/@media/scripting

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;
  }
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


For*_*rdi 5

最好不要以这种方式通过 JS 弄乱 CSS。尝试这个:

<noscript>

    <link href="no-js.css" type="text/css" rel="stylesheet" />

</noscript>
Run Code Online (Sandbox Code Playgroud)