jQuery:使用slideUp()/ slideDown()时IE8边距崩溃

the*_*BRU 13 jquery internet-explorer-8

我在这里上传了一个测试文件:

http://dl.dropbox.com/u/2201804/IE8test.html

如果单击"Click me"div,您将看到使用slideDown()显示"Feedback"div.单击另一个框中的"单击我"可以滑动当前显示的反馈并向下滑动相应的反馈.

在IE8中,在完成slideUp()/ slideDown()操作后,框之间的边距会折叠.

这是jQuery的动画或IE8中的显示错误的问题吗?

小智 23

溢出:隐藏;

应该做的工作:)

  • 这对我也有用.任何人都可以解释为什么这有效吗?它只是一个IE漏洞吗?IE9做同样的事情吗? (2认同)
  • 我想这是因为IE8需要一个带边距的滑动元素的块格式化上下文.你可以用另一种方法解决这个问题,但溢出:隐藏似乎是最合适的.你可以在这里阅读[这里](https://developer.mozilla.org/en-US/docs/CSS/Block_formatting_context) (2认同)

TJ.*_*TJ. 5

我没有使用边距的解决方案,但如果用填充替换边距,IE8将会播放.在你的情况下,你需要一个额外的容器div,因为你已经在使用填充,并且你有一个背景颜色集.

所以你的解决方案看起来像这样:

<div class="assessment">
  <div class="inner">
    <div class="question">
...

.assessment { 
  padding-top: 20px; 
  background: transparent; 
}

.assessment .inner {
  background-color:#DDDDDD;
  border:1px solid #CCCCCC;
  color:#555555;
  display:block;
  padding:10px 0;
  text-align:left;
  width:100%;
}
Run Code Online (Sandbox Code Playgroud)

干杯tj