【发布时间】:2017-08-23 12:19:35
【问题描述】:
我想做的事:我尝试使用 CSS 网格布局来实现页面。在全尺寸下,垂直和水平间距应为 20 像素。但如果它当然必须响应。 确切地说,我希望水平装订线以与垂直装订线相同的方式调整大小,以保持图片之间相同的边距比率。
我的问题:我尝试了几种方法来实现这一点。在下面的代码中,我使用了 1.25em。为什么?我的假设是,由于默认字体大小约为 16px,我认为 1.25em (20px) 应该可以解决问题。但它不起作用......我找不到另一种方法来获得所需的行为。你能帮忙指点一下吗?
.wrapper {
max-width: 1420px;
margin: 0 auto 0 auto;
display: grid;
grid-template-columns: auto;
grid-template-rows: auto;
}
figure {
margin: 0;
padding: 0;
}
img {
max-width: 100%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
}
/*First section*/
.wide {
display: grid;
grid-template-columns: 100%; /* 1420px; */
grid-template-rows: auto 1.25em;
}
.wide-a {
grid-column: 1 / 2;
grid-row: 1 / 2;
}
/*Second section*/
.composed {
display: grid;
grid-template-columns: 49.295774647% 1.408450704% 49.295774647%;
grid-template-rows: auto 1.25em auto 1.25em;
}
.composed-a {
grid-column: 1 / 2;
grid-row: 1 / 4;
}
.composed-b {
grid-column: 3 / 4;
grid-row: 1 / 2;
}
.composed-c {
grid-column: 3 / 4;
grid-row: 3 / 4;
}
<div class="wrapper">
<div class="wide">
<figure class="wide-a">
<img src="http://via.placeholder.com/1420x955" width="">
</figure>
</div>
<div class="composed">
<figure class="composed-a">
<img src="http://via.placeholder.com/700x950" width="">
</figure>
<figure class="composed-b">
<img src="http://via.placeholder.com/700x490" width="">
</figure>
<figure class="composed-c">
<img src="http://via.placeholder.com/700x440" width="">
</figure>
</div>
</div>
【问题讨论】:
-
您对使用 Masonry 的可能性持开放态度吗?我发现它比 CSS 网格更容易。
-
是的,可以选择砌体,没问题。
-
我今天写这个是为了另一个相关的事情。你可能会也可能不会觉得它有用。 codepen.io/anon/pen/zdadMX
-
能否添加占位符图片以便我们看到完整的 MCVE?
-
@TylerH 添加了占位符并在此过程中学习了一个新的首字母缩写词!