如果禁用javascript,如何在任何X / HTML元素上提供CSS样式?

时间:2010-01-30 13:36:14

标签: javascript css xhtml noscript

我想从外部css文件中执行此操作。我在主css中有一个div#abc,但我想为这个div设置display none仅在javascript被禁用时

4 个答案:

答案 0 :(得分:3)

怎么样

<noscript>
  <style type="text/css">
  div#abc { display: none; }
  </style>
</noscript>

?如果您真的想在外部CSS文件中执行此操作,请将其移至no_js.css并在link元素中引用此文件,而不是样式属性。

然而,大多数情况下,反过来更方便:设置禁用JS的默认值,然后让JS更改类名(例如)以更新样式。 jQuery示例:

$(document).ready(function () {
  $('.fancy_user_interface_element').addClass('additional_js_style_class');
});

答案 1 :(得分:1)

我会使div style =“display:none;”默认情况下,然后使用javascript显示它。

<div id="abc" style="display: none;">
 ...
</div>

<script type="text/javascript">
    $(function() {
        $('#abc').show();  //using jQuery
    });
</script>

这样,如果您没有启用javascript,则不会显示div。我已经使用内联CSS显示它,但您也可以使用CSS类来完成它,只需从元素中删除该类。

 <style>
    .requires-javascript { display: none; }
 </style>

 <div id="abc" class="requires-javascript">
     ...
 </div>

 <script type="text/javascript">
     $(function(){
         $('.requires-javascript').removeClass('requires-javascript');
     });
 </script>

这种方式可以使用单个jQuery语句来处理页面上需要javascript的所有元素。

答案 2 :(得分:0)

将要显示的元素放在noscript标记内,只有在禁用javascript时才会显示该元素。

答案 3 :(得分:0)

你要做的是在你的javascript中有一个事件,它将规则的样式从隐藏设置为隐藏。让CSS始终将该元素设置为隐藏。如果他们关闭了javascript,它永远不会取消隐藏它,因此它会被CSS隐藏。