【发布时间】:2017-08-24 18:10:10
【问题描述】:
以a previous question 为基础,我正在尝试将更大的块添加到我的网格布局中。在最后一个问题中,我需要一个 div 跨越多行。现在的问题是我需要一个 div 来跨越多行和列。
如果我有一个五个元素的行,我怎么能把更大的元素放在它的中间? (正如float 自然而然地放在一边)。
这是一个示例 sn-p:
#wrapper{
width: 516px;
}
.block{
display: inline-block;
width: 90px;
height: 50px;
margin: 5px;
background-color: red;
}
.bigger{
height: 110px;
}
.larger{
height: 110px;
width: 190px;
}
<div id="wrapper">
<div class="block"></div>
<div class="block bigger"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block larger"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
</div>
我不想将 display: grid 用于包装元素,因为 我可以使用 states 这是目前非常先进的技术。我希望有一个非网格、非表格解决方案。
【问题讨论】:
-
可以修改 HTML 吗?
-
如果您的 HTML 无法更改,我建议使用 Isotope 之类的库 - 不确定是否有纯 CSS 解决方案可以真正实现您的目标。
-
@Michael_B 我正在开发一个“2 块包装器”,但希望以另一种方式来实现它
标签: css flexbox grid-layout css-grid