【发布时间】:2011-01-15 18:36:25
【问题描述】:
我有一条水平线 div 元素,它们是 display:inline-block 并且顶部对齐。
我可以添加元素,并且行会扩展。当我通过将宽度设置为 0 来移除元素时,该线不会保留其单线外观,而是会强制在动画期间临时出现第二条线。
在 IE、Webkit 和 Firefox 中的行为是相同的。
我可以改变界面来避免这个问题,但我仍然想知道是什么原因造成的,以及如果可能的话如何修复它。
这是一个按比例缩小的问题示例。
body {
text-align: center;
}
#container {
height: 20px;
border: 1px dashed #AAA;
background: #EEE;
margin: 0 auto;
display:table !important;
display: -moz-inline-stack; /* Pre FF3 fix */
display: inline-block;
zoom: 1; /* IE fix */
*display: inline; /* IE fix */
}
.item {
cursor: pointer;
width: 50px;
height: 18px;
border: 1px solid purple;
vertical-align: top;
display: inline-block;
color: white;
vertical-align: top;
display: -moz-inline-stack; /* Pre FF3 fix */
display: inline-block;
zoom: 1; /* IE fix */
*display: inline; /* IE fix */
}
.outer {
background: orange;
}
$('#add').click(function() {
$(this).before('<div class="item"></div>')
});
$('#add').click().click().click()
$('.item:not(.outer)').live('click', function() {
$(this).animate({width: 1, paddingLeft: 0}, 1000, function() {$(this).remove()});
});
<div id="container"><div class='item outer'></div><div id="add" class="item outer">Add</div></div>
【问题讨论】: