css - 如何在中间打破无序列表?

标签 css html-lists

如果我有一个列表

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>

我怎样才能让它水平显示前两个元素和接下来的三个元素,但在它们之间插入第二行?

编辑:正在寻找 CSS 解决方案,因此我可以根据视口(viewport)大小选择是否执行此操作。

最佳答案

使用 Flexbox(css) 你可以做到这一点。使用此解决方案,它取决于在第一行显示多少个元素。例如,如果您希望元素显示在第一行,您可以将 100 除以 4,得到 25,宽度为 25%; 下面是三个示例。希望对您有所帮助

ul {
  display: flex;
  flex-wrap: wrap;
  border: 1px red solid;
}
li {
  width: 33.33%;
}

ul+ul{
  width: 100px;
}
ul+ul li {
  width: 50%;

}
ul+ul li:nth-last-of-type(-n+3) {
  width: 33.33%;
}

ul + ul + ul {
  display: flex;
  flex-wrap: wrap;
  border: 1px red solid;
  width: 150px;
}
ul + ul + ul li:nth-of-type(2) {
  width: 50%
}
ul + ul + ul li {
  width: 33.33%;
}
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>

关于css - 如何在中间打破无序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43504406/

相关文章:

html - 我的 </p> 标签影响了我的 div 的位置。为什么是这样?

css - 具有水平部分和垂直部分的形式

html - 无法摆脱菜单中的列表项高度

CSS: li > 边距

html - float 图像在 IE9 中扭曲无序列表

css - 如何制作这样的CSS动画?

css - 如何制作一个可以在鼠标悬停时单独更改大小的导航栏?

html - 从页面上的链接打开主页后无法正确加载 Css (Rails 5)

html - CSS 响应式网页 : display 2 ul li elements in one line (into each other)

html - CSS 列表扩展到与 div 中的内容相同的高度