Jquery隐藏/显示破坏了我的div?
我最近在一个网站上添加了一点jquery来修复IE7中的一个渲染错误。不幸的是,由于某种原因,这个小小的节目脚本打破了底部的一些分割,我一辈子都不知道为什么。我已经花了太多的时间来摆弄它,确保div正确对齐,等等 有人能告诉我为什么这个脚本会改变我代码的显示方式吗Jquery隐藏/显示破坏了我的div?,jquery,html,hide,show,Jquery,Html,Hide,Show,我最近在一个网站上添加了一点jquery来修复IE7中的一个渲染错误。不幸的是,由于某种原因,这个小小的节目脚本打破了底部的一些分割,我一辈子都不知道为什么。我已经花了太多的时间来摆弄它,确保div正确对齐,等等 有人能告诉我为什么这个脚本会改变我代码的显示方式吗 <script type='text/javascript'> $(document).ready(function() { $('#hide').show() }) </script> $(documen
<script type='text/javascript'>
$(document).ready(function() { $('#hide').show() })
</script>
$(document).ready(函数(){$('#hide').show()})
下面是带隐藏和不带隐藏版本的链接,以便您可以看到我所说的内容以及所有代码
如果有人对我如何解决这个问题有任何线索的话,我将非常感谢你朝着正确的方向努力
谢谢。您的小部件将设置为高度0px,添加它们的脚本必须查看容器高度,而display none实际上是高度0px宽度0px
$('.widget').height(120)
在.show()之后应该修复它
将main.js移动到
$(document.ready)(function(){$('#hide').show()})下面可能也会有效果。您不应该将jQuery用于此解决方案。使用附加样式表的条件注释来解决IE7问题是一个更好的解决方案
制作一个包含css的新样式表,该css仅在IE7中修复了这个问题。然后,将其放入名为ie-7-fix.css的文件中,并将以下代码添加到HTML中:
您正在对隐藏元素执行的等高操作,因此高度都被设置为0。使用Firebug,我可以看到“工作”页面将widgetWrap
div中的div定义为高度为120px。一些JavaScript正在注入
style="height: 120px;"
进入每个小部件div
在“断开”页面中,相同的JavaScript正在注入
style="height: 0px;"
这将导致您看到的文本重叠。现在我不知道是哪个JavaScript在这么做,但我猜这是因为断页中的主体样式定义了display:none
错误的样式,代码中使用了js而不是css。我想纠正一下。另外一个非常好的答案+1问题是一些看起来完全像FOUC的东西,不一定与CSS有关(我知道)。它只是看起来好像加载CSS很晚。我不知道有什么CSS可以用来解决这个问题。对不起,我现在明白你的意思了。我不知道ie-7-fix.js。不过,我确实尝试过这个方法,但它并没有像jquery解决方案那样解决我的问题。我修复了我编写的代码——我不小心使用了它而不是tag。好的,我看到它在main.js文件中(我以前查看过缩小的js文件)。在调用show()之前,您正在计算最大高度,当然它将为零。