等宽列表子和换行

Posted

技术标签:

【中文标题】等宽列表子和换行【英文标题】:Equal width list child & break the line 【发布时间】:2020-03-14 18:59:15 【问题描述】:

我想要实现的是制作一种响应式/流畅的导航,它是盒形的。这意味着我将有 6 个列表元素,在 100% 宽度的情况下,将分为两行,每行有 3 个子元素。

喜欢:

|项目 1| |项目 2| |第 3 项|

|项目 4| |第 5 项| |第 6 项|

当屏幕变小时,它会堆叠/折叠,每行一个项目(就像引导列一样。

这是我目前得到的:

<div class="container">

  <div class="row">
    <div class="col">

      <ul class="courses-types list-group">
         <li class="list-group-item">item 1</li>
         <li class="list-group-item">item 2</li>
         <li class="list-group-item">item 3</li>
         <li class="list-group-item">item 4</li>
         <li class="list-group-item">item 5</li>
         <li class="list-group-item">item 6</li>
      </ul>

    </div>
  </div>

</div>

和css

.courses-types 
  padding:0;
  width:100%;
  background:pink;
  display:table;
  border-collapse: separate;
  border-spacing: 10px;

.courses-types, .courses-types li 
  list-style-type: none;
  list-style-position: inside;
  text-align: center;


.courses-types li 
  display:table-cell;
  background:#cecece;
  padding:1em;
  width:calc(100%/3);
  border:0;

当前代码几乎没有问题 - 即使宽度是根据 100% 宽度计算得出的,但子级仍然不相等。第二个问题 - 不知道如何在第三个元素(大屏幕)和每个元素(小屏幕)之后使其可折叠。项目基于bootstrap 3.3.7。

【问题讨论】:

你不能使用表格布局进行换行,考虑 Flexbox 或 inline-block 甚至浮动 【参考方案1】:

您应该改用 flexbox。 这可以为您提供所需的布局。

.list-group 
  	display: flex;
	justify-content: center;
	flex-wrap: wrap;


.list-group-item 
  flex-basis: 33.3333%;
<div class="container">

  <div class="row">
    <div class="col">

      <ul class="courses-types list-group">
         <li class="list-group-item">item 1</li>
         <li class="list-group-item">item 2</li>
         <li class="list-group-item">item 3</li>
         <li class="list-group-item">item 4</li>
         <li class="list-group-item">item 5</li>
         <li class="list-group-item">item 6</li>
      </ul>

    </div>
  </div>

</div>

【讨论】:

感谢一百万!只需使用专用于移动设备的媒体查询扩展代码即可。

以上是关于等宽列表子和换行的主要内容,如果未能解决你的问题,请参考以下文章

Safari 中的 Flexbox 行换行问题

c语言中 将数组列换行 行换列

python给word添加换行换页符

用于打印输出的明智的 python 源代码行换行

C++中回车换行( )和换行( )的区别

从文件中删除所有回车和换行