我在 safari 中包含 2 个浮动元素的 div 的宽度存在问题。
浮动 div 之一的宽度设置为 0,并在单击事件上使用 jquery 展开。safari 中的父容器保留两个 div 的宽度,即使宽度设置为 0。
这里有一个例子,可以在除 Safari 之外的所有地方工作。 http://jsfiddle.net/XUR7R/6/
HTML:
<div class="item-list">
<ul>
<li class="article">
<div class="column">
Column 1<br/>
<a href="#" class="expand">toggle</a><br/>
</div>
<div class="column expandableColumn">
Column 2 content
</div>
</li>
</ul>
</div>
CSS
.item-list{
overflow:hidden;
}
.article{
float:left;
overflow:hidden;
background:#555;
padding:5px;
}
.column{
float:left;
height:100px;
width:100px;
background:red;
}
.expandableColumn{
width:0;
}
Javascript
$(document).ready(function() {
$('.expand').click(function() {
if ($(this).hasClass('.expanded')) {
$('.expandableColumn').animate({
'width': '0px'
});
}
else {
$('.expandableColumn').animate({
'width': '100px'
});
}
$(this).toggleClass('.expanded')
});
});