使用javascript更改显示属性会弄乱格式

使用javascript更改显示属性会弄乱格式,javascript,jquery,css,Javascript,Jquery,Css,我是网页的一部分,只有启用javascript时才应该显示 我尝试了以下方法: 方法1:我将类设置为display:hidden然后通过重写javascript来更改它 <script type="text/javascript"> //<![CDATA[ $(document).ready(function() { document.getElementById('only-show-if-js-enabled').style.display = 'block';}

我是网页的一部分,只有启用javascript时才应该显示

我尝试了以下方法:

方法1:我将类设置为
display:hidden然后通过重写javascript来更改它

<script type="text/javascript"> 
//<![CDATA[
$(document).ready(function() {
    document.getElementById('only-show-if-js-enabled').style.display = 'block';});
//]]>
</script> 

//

而且

方法2:我将id更改为显示设置为块(或自动)


//

这两种方法似乎都会导致实际格式混乱,第一种方法忽略了列表样式为“无”的css,第二种方法隐藏了溢出

发生什么事了

更新: 相当尴尬的是,我将溢出设置为
auto
,只是认为它被设置为hidden。我的错误

感谢您的两个回复,它们都为最佳实践等提供了一些启示。干杯。

这应该可以做到


对,我有点错过了整个问题。。。嗯,如果你改变
显示:无,css在没有你提到的代码的情况下工作吗至<代码>显示:块或者,如果您使用firebug之类的工具?

现代方法是让您的文档准备功能执行以下操作:

<script type="text/javascript"> 
//<![CDATA[
$(document).ready(function() {
    $("body").addClass("js");
//]]>
</script>
$('#only-show-if-js-enabled').show();
<script type="text/javascript"> 
//<![CDATA[
$(document).ready(function() {
    $("body").addClass("js");
//]]>
</script>
#OnlyShowWhenJsDisbaled { display: none; } /*hide by default */
body.js #OnlyShowWhenJsEnabled { display: block; } /*show when js has been confirmed*/