每3 <li>

时间:2017-06-07 14:10:37

标签: html css

我正在构建一个获取JSON数据并填充网站的网站,因此我获得了未知数量的项目,这些项目位于3列,我希望在每行之后有一个看起来很漂亮的行。

当它是静态内容时,我所做的是:

<ul>
  <li></li>
  <li></li>
  <li></li>
  <div class="separator"></div>
  <li></li>
  <li></li>
  <li></li>
  <div class="separator"></div>
</ul>

但现在我得到了动态内容,我不知道如何管理它。

2 个答案:

答案 0 :(得分:5)

这不是有效的HTML,浏览器也不会这样呈现。您不能<div>作为<ul>的直接子女。 不可能。您可以尝试使用<li class="separator"></li>

我会在每个第三个孩子之后使用这个小脚本添加一个新的<li>

$(function () {
  $("li:nth-child(3n)").after("<li class='seperator' />");
});
.seperator {
  background: #ccf;
  padding: 1px;
  list-style: none;
}
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
  <li>Item 6</li>
  <li>Item 7</li>
  <li>Item 8</li>
  <li>Item 9</li>
  <li>Item 10</li>
</ul>

答案 1 :(得分:1)

您只需使用:nth-child - CSS选择器:

li:nth-child(3n) {
  /* replace with whatever style you have for the seperators */
  border-bottom:1px solid #999;
}
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
</ul>