【发布时间】:2018-02-14 05:32:03
【问题描述】:
我正在尝试以砖石的形式建立一个画廊,但我无法理解 flexbox 的包装?
我得到了一个简单的 UL 列表,并添加了所需的样式,但事情并没有像应有的那样浮动和环绕。
.masonry {
margin: 48px -2px;
padding-left: 0;
list-style: none;
align-items: flex-start;
flex-direction: row;
flex-wrap: wrap;
display: flex;
}
.masonry li {
height: 300px;
flex-basis: calc(33.33% - 4px);
margin: 2px;
text-align: center;
display: flex;
background-color: #C9F4FF;
}
.masonry li:nth-child(1), .masonry li:nth-child(7) {
height: 604px;
background-color: #FFB4FF;
}
.masonry li:nth-child(4), .masonry li:nth-child(4) {
flex-basis: calc(66.66% - 4px);
background-color: #B9EDA8;
}
<!-- masonry starts -->
<ul class="masonry">
<li> </li>
<li> </li>
<li> </li>
<li> </li>
<li> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
<!-- masonry ends -->
结果是这样的,有点意思:)
也许有人知道如何编写正确的 CSS 以使内容正确包装?
【问题讨论】:
-
你想要实现的是可以使用 CSS 网格来完成。
-
Flexbox 感觉更安全一些,因为它已经在所有主流浏览器中支持了一段时间。
-
CSS grid 和 Flexbox 都支持 IE11 你可以查看这个链接查看浏览器兼容性https://caniuse.com