等宽列表 child & break the line
Equal width list child & break the line
我想要实现的是制作一种响应式/流畅的导航,它是盒形的。这意味着我将有 6 个列表元素,在 100% 宽度的情况下,将分成两行,每行有 3 个子元素。
喜欢:
|项目 1| |项目2| |项目 3|
|项目 4| |项目5| |项目 6|
当屏幕变小时,它会生成一个 stack/collapse,每行一个项目(与 bootstrap 列一样。
这是我目前得到的:
<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。
这可以为您提供所需的布局。
.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>
我想要实现的是制作一种响应式/流畅的导航,它是盒形的。这意味着我将有 6 个列表元素,在 100% 宽度的情况下,将分成两行,每行有 3 个子元素。
喜欢:
|项目 1| |项目2| |项目 3|
|项目 4| |项目5| |项目 6|
当屏幕变小时,它会生成一个 stack/collapse,每行一个项目(与 bootstrap 列一样。
这是我目前得到的:
<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。 这可以为您提供所需的布局。
.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>