【发布时间】:2018-11-01 07:30:31
【问题描述】:
我正在尝试使用 jquery UI 创建一个可排序的 CSS 网格。
$( function() {
$( "#sortable" ).sortable({
handle: "handle"
});
});
gridHolder{
display:grid;
background:tan;
grid-template-columns:1fr 1fr 1fr 2fr;
}
gridHeader > *{
padding:10px;
background:yellow;
border:thin solid black;
}
gridContent , gridHeader{
display:contents;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<gridHolder id="sortable">
<gridHeader>
<handle>Handle</handle>
<name>Name</name>
<address>Address</address>
<phone>Phone</phone>
</gridHeader>
<gridContent>
<handle>Handle</handle>
<name>Adam</name>
<address>111 Main St</address>
<phone>123-4567</phone>
</gridContent>
<gridContent>
<handle>Handle</handle>
<name>Bob</name>
<address>222 Brown Ave</address>
<phone>987-6543</phone>
</gridContent>
<gridContent>
<handle>Handle</handle>
<name>Carl</name>
<address>333 East Ave</address>
<phone>555-1343</phone>
</gridContent>
</gridHolder>
https://jsfiddle.net/Lj9wnh7x/6/
我遇到的问题是 sortable 似乎无法与 css 网格和 display:contents 属性一起正常工作。 我知道 display:contents 与其说是显示不如说是子元素的组织者,但我看不出它会如何影响 jquery ui 可排序。
【问题讨论】:
-
你想要的输出是什么?
-
我正在尝试使网格行可排序。它们应该可以通过“句柄”项目拖动。目前元素面板(在 chrome 中)显示它们正在移动,但它们不会显示为这样。
-
@Robbie 因为您没有使用传统的
<ul><li>,所以您需要定义items来进行排序。您还希望标题和内容一样排序吗? -
我也不熟悉这个标记。你能链接到你正在使用的 CSS 或教程吗?
-
这只是样式化的 XML 以便于阅读。另一位用户使用传统 HTML 发布它。