可以仅将某些CSS应用于禁用Javascript的用户吗?

问题描述

| 标题几乎说明了我要做什么,但是要详细说明一下,我想为未启用JavaScript的用户将一些CSS应用于名为
prochart-colitem
的类。 原因?我使用百分比为等于100%的列宽,然后使用javascript从每个div中减去2个像素(也添加了边框)。 如果没有启用JavaScript,则列+边界等于父div的100%以上,我需要从一个类中减去几个像素,以使其适合no-js用户的父div。 有任何简单的方法吗?我在里面尝试了
<noscript>
<style>
,没有运气。     

解决方法

        一种解决方法是始终将CSS类添加到希望具有特定样式的元素上,然后在加载后运行一些JavaScript以从具有该类的元素中删除这些类。 作为一个示例(为了简单起见,我在这里使用jQuery,但是显然可以在没有JS库的情况下完成此操作):
$(document).ready(function()
{
  $(\".nonJsClass\").each(function()
  {
    $(this).removeClass(\"nonJsClass\");
  }
}
\'nonJsClass \'具有CSS规则的地方,现在仅在用户未启用JS的情况下才适用。     ,        您可以将一个类添加到body标签,当未启用JS时会触发所需的CSS,然后在body标签之后,立即用JS将其删除。 因此,具有JS支持的用户将看不到特殊类的效果。     ,        在HTML5之前不可能在noscript标记中包含样式表,但是现在可以了(只要您在文档的\“ head \”中完成)。 http://adapt.960.gs/   如果有意禁用或无法使用JavaScript,则可以通过来提供样式表默认设置,这对于HTML5来说是完全有效的。     ,        scunliffe的回答很好。另一种方法是编写CSS样式,该样式仅在启用JavaScript时显示,并且仅使用类链接定位到所需的div:
.prochart-colitem.js-enabled {
     /* your JS-specific styles */
}
然后,您可以使用jQuery,例如,添加该附加类:
$(document).ready(function() {
    $(\'.prochart-colitem\').addClass(\'js-enabled\');

});