【发布时间】:2018-09-05 17:34:14
【问题描述】:
我有一个简单的ul 像这样:
ul.target {
font-family: calibri, verdana, arial;
min-height: 500px;
float: none;
column-count: 4;
column-width: 25%;
column-gap: 1rem;
column-rule: 1px solid gray;
box-sizing: border-box;
}
ul {
margin: auto;
list-style: none;
}
ul > li > ul {
break-after: column;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<ul class="target">
<li class="categ">category 1</li>
<li class="item">test 1</li>
<li class="item">test 2</li>
<li class="categ">category 2</li>
<li class="item">test 3</li>
<li class="item">test 4</li>
<li class="item">test 5</li>
<li class="item">test 6</li>
<li class="item">test 7</li>
<li class="item">test 8</li>
<li class="categ">category 3</li>
<li class="item">test 9</li>
<li class="item">test 10</li>
<li class="item">test 11</li>
<li class="item">test 12</li>
<li class="item">test 13</li>
<li class="item">test 14</li>
<li class="item">test 15</li>
<li class="item">test 16</li>
<li class="item">test 17</li>
<li class="item">test 18</li>
<li class="categ">category 4</li>
<li class="item">test 19</li>
<li class="item">test 20</li>
<li class="item">test 21</li>
<li class="item">test 22</li>
<li class="item">test 23</li>
<li class="item">test 24</li>
<li class="categ">category 5</li>
<li class="item">test 25</li>
<li class="item">test 26</li>
<li class="item">test 27</li>
<li class="item">test 28</li>
<li class="item">test 29</li>
<li class="item">test 30</li>
<li class="item">test 31</li>
<li class="item">test 32</li>
<li class="item">test 33</li>
</ul>
您可以see here,类别 2 位于最底部,类别 3 位于中间。如果它们位于最底部,我希望能够将它们动态地移动到下一列。知道高度可能更大并且每列中可能有很多其他类别,我想将该列的 LAST 类别推送到下一列,从而相应地修改其余列。我不知道从哪里开始......
编辑,取自 cmets:
澄清一些事情: 我的代码是一个包含更多内容的较大代码的一个小例子,所以问题仍然是关于如何将每个类别移动到下一列,试图找到另一种方法在我的情况下不起作用这只是一个预览。我正在使用 JQuery 来获取类别和项目列表,然后我不知道如何使用 JS 将类别推送到下一列。如果它是当前列的最后一个类别,它应该重新定位到下一列。
【问题讨论】:
-
你已经尝试了什么?
-
@BenM 感谢您的评论!正如我所说,我不知道从哪里开始或这里调整了什么逻辑。我不是在寻找一个纯粹的答案,只是想知道我从哪里开始自己解决问题。
-
你的问题在这里描述> stackoverflow.com/questions/23082368/… 基本上,如何定位列中的最后一个孩子,以及如何替换/移动它,如果它是.categ li。我宁愿一开始就改变html结构(动态创建,如我所见)......
-
您可以查看Insert column break in css3 column,因为它似乎是您正在寻找的;请务必阅读完整的答案,因为它有一个折叠的 sn-p 这可能是您想要的。
-
@HereticMonkey 很抱歉,您完全正确,我将您的答案标记为已回答,以感谢您的努力!
标签: javascript html css