我是网页的一部分,只有在启用了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更改为将显示设置为块(或自动)...
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$("#js-not-enabled").attr('id', 'js-enabled');
});
//]]>
</script>
这两种方法似乎都会导致实际格式混乱,第一种忽略了我的css,列表样式为none,第二种是溢出被隐藏。
发生了什么事?
更新:
相当令人尴尬的是,我将溢出设置为auto
,并且只是认为它被设置为隐藏。我的错。
感谢你们的回复,他们都对最佳做法等有所启发。
答案 0 :(得分:0)
这应该http://jsfiddle.net/kkwan/1/
$('#only-show-if-js-enabled').show();
是的,我有点错过了这里的整个问题...嗯,如果你将display: none;
更改为display: block;
或者如果你将它或其他东西更改,那么css是否可以在没有你提到的代码的情况下工作?
答案 1 :(得分:0)
这种事情的现代方法是让你准备好文件就可以做到这一点:
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
$("body").addClass("js");
//]]>
</script>
然后在你的CSS中你可以使用它作为钩子,只显示启用JS(或禁用)设备的东西。
#OnlyShowWhenJsDisbaled { display: none; } /*hide by default */
body.js #OnlyShowWhenJsEnabled { display: block; } /*show when js has been confirmed*/