【发布时间】:2019-07-23 18:29:53
【问题描述】:
我正在尝试构建一个包含类似卡片的项目的网格。每种类型的单元格(标题、图像、文本、按钮...)在每一行中的高度应相同,由最大单元格的内容决定,如下面的代码 sn-p 所示。
现在我试图限制列数,让卡片换行,就好像我在基于 flexbox 的解决方案中使用了flex-wrap: wrap;。列数应通过媒体查询确定。如果不使用尚不支持的subgrids,这可能吗?
此外,使用子网格的解决方案会是什么样子?我猜它会降级为当前浏览器中高度不等的单元格?
.grid {
display: grid;
grid-template-rows: repeat(4, auto);
grid-gap: 10px;
grid-auto-flow: column;
grid-auto-columns: auto;
}
<div class="grid">
<h2 class="a">Header 1</h2>
<img class="b" src="https://placekitten.com/400/100" />
<p class="c">text
</p>
<button class="d">Button</button>
<h2 class="a">Header 2 is longer and may span multiple lines</h2>
<img class="b" src="https://placekitten.com/400/100" />
<p class="c">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis et cursus ligula. Maecenas non pharetra dui, eu tincidunt mi. Vivamus vitae luctus risus. Etiam vehicula sem est.
</p>
<button class="d">Button</button>
<h2 class="a">Header 1</h2>
<img class="b" src="https://placekitten.com/400/100" />
<p class="c">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis et cursus ligula. Maecenas non pharetra dui, eu tincidunt mi. Vivamus vitae luctus risus. Etiam vehicula sem est, non ultricies lectus placerat eget.
</p>
<button class="d">Button</button>
<h2 class="a">Header 1</h2>
<img class="b" src="https://placekitten.com/400/100" />
<p class="c">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis et cursus ligula. Maecenas non pharetra dui, eu tincidunt mi. Vivamus vitae luctus risus. Etiam vehicula sem est, non ultricies lectus placerat eget. Suspendisse pulvinar arcu massa, quis
varius velit facilisis tincidunt. Proin sed cursus orci.
</p>
<button class="d">Button</button>
<h2 class="a">Header 1</h2>
<img class="b" src="https://placekitten.com/400/100" />
<p class="c">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</p>
<button class="d">Button</button>
</div>
【问题讨论】:
-
您需要将每张卡片包装在一个单独的 div 中......这将是正常的方法。没有 CSS 方法可以均衡不共享父元素的行或元素之间的高度。
标签: html css css-grid grid-layout