Div设置显示:在CSS类没有 – 为什么我不能重写它,并显示正文中的div?

我有一个非常简单的外部CSS样式表具有以下内容:

div.hideBox { display:none; } 

所以当html页面加载时,具有该类属性'hideBox'的div将不会显示在页面上,这是我想要的。 但是当用户点击同一页面上的button时,我会显示/显示该框。 我试图使用onclick事件来做到这一点,但div不会显示。

所以例如,代码将是:

 <script language="javascript"> function showmydiv() { document.getElementById('mybox').style.display = ""; } </script> </head> <body> <div id="mybox" class="hideBox"> some output of text </div> <input type="button" name="ShowBox" value="Show Box" onclick="showmydiv()"> 

奇怪的是,当我使用visibility:hidden; position:absolute;时,类似于这个设置的设置有效visibility:hidden; position:absolute; visibility:hidden; position:absolute; 我可以使用JavaScript函数来显示<div>

我在这里做错了什么?

因为将divdisplay样式属性设置为""并不会改变CSS规则本身的任何内容。 这基本上只是创build一个“空的” 内嵌 CSS规则,除了清除该元素上的同一个属性之外,它没有任何作用。

你需要把它设置为有价值的东西:

 document.getElementById('mybox').style.display = "block"; 

如果你正在replacediv上的内联样式,你正在做的工作就像这样:

 <div id="myBox" style="display: none;"></div> document.getElementById('mybox').style.display = ""; 
 document.getElementById('mybox').style.display = "block"; 

尝试设置显示在您的JavaScript块,而不是一个空白值。

我可以看到,你想写你自己的短JavaScript的,但你有没有考虑使用Frameworks的HTML操作? 对于这样的任务,jQuery是我的首选工具,尽pipe它对于你当前的问题来说是一个矫枉过正,因为它有很多额外的function。

看看这里的jQuery