【发布时间】:2012-01-17 12:33:45
【问题描述】:
这就是问题所在,我有 6 个 div 使用 jQuery UI sortable。它们的排列如下图所示。
图像是我正在寻找的布局,每个 div 之间的间距相等,但最后的 div 靠在容器的边缘。
我的理解是,这不能通过例如在所有元素上设置 margin-right:10px 并删除第 3 和第 6 个元素的边距来完成,因为这些元素可能会被拖动到不同的位置,因此它们将不再处于第 3 和第 6 位。
我认为这不能通过将每个部分添加到列 div 并在 jQuery sortables 设置中设置 connectWith 来完成,因为这组 6 个本身位于连接到其他列表的 div 中,我不认为无论如何,您都可以使用 connectWith: '.connectedSortable, .column'。
我也尝试过使用伪类 :nth-child(n) 但在拖动元素时无法正确更新边距:(
你可以在这里查看一个 jsfiddle > http://jsfiddle.net/hC5Qy/1/
框的宽度当前设置为 32%,我的想法是我可以在其中两个框上设置 2% 的左右边距以提供 100% (32 + 32 + 32 + 2 + 2 = 100) .
有什么想法吗?
有没有 JavaScript 方法可以做到这一点?任何新的 CSS3 或 HTML5 布局可用于使中间框居中? (我不担心旧浏览器的兼容性)。
非常感谢任何帮助!
谢谢
[编辑:小提琴中的一些代码]
HTML:
<div id="area1" class="connectedSortable">
<div class="block"><span style="font-size:3em; color:#CCC;">1</span></div>
<div class="block"><span style="font-size:3em; color:#CCC;">2</span></div>
<div class="block"><span style="font-size:3em; color:#CCC;">3</span></div>
<div class="block"><span style="font-size:3em; color:#CCC;">4</span></div>
<div class="block"><span style="font-size:3em; color:#CCC;">5</span></div>
<div class="block"><span style="font-size:3em; color:#CCC;">6</span></div>
</div>
JS:
$(function() {
$(".connectedSortable ").sortable({
connectWith: ".connectedSortable"
});
$(".connectedSortable").disableSelection();
});
CSS:
#area1, #area2 {
border:1px solid red;
float:left;
width:680px;
margin-bottom:15px;
background:#ccc;
}
.block {
background:green;
width:32%;
height:200px;
float:left;
margin-right:1%;
margin-top:10px;
}
【问题讨论】:
标签: javascript jquery css jquery-ui