带有图像的复杂网格
Complex grid with images
我有下面的网格,我想把它转换成代码。
我搜索了这样的网格,唯一的参考是关于 masonry library 但没有帮助我。
另一种方法是 css only,但我无法理解这背后的逻辑。
任何有助于良好开端继续的帮助都将不胜感激!
您可以设置一个 CSS 具有足够行数和列数的网格,并按照设计分布元素:
.container {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-column-gap: 10px;
grid-row-gap: 10px;
grid-auto-flow: column dense;
width: 95vw;
height: 95vh;
}
.vertical {
grid-row: span 2;
background-color: tomato;
}
.horizontal {
grid-column: span 2;
background-color: lightgreen;
}
.square {
background-color: lightblue;
}
#v2 {
grid-column-start: 3;
}
#v3 {
grid-column-start: 6;
}
#v4 {
grid-column-start: 2;
grid-row: 2 / 4;
}
#v5 {
grid-column-start: 5;
grid-row: 2 / 4;
}
<div class="container">
<div class="vertical" id="v1">V1</div>
<div class="vertical" id="v2">V2</div>
<div class="vertical" id="v3">V3</div>
<div class="vertical" id="v4">V4</div>
<div class="vertical" id="v5">V5</div>
<div class="horizontal" id="h1">H</div>
<div class="horizontal" id="h2">H</div>
<div class="square">S</div>
<div class="square">S</div>
<div class="square">S</div>
<div class="square">S</div>
</div>
我知道这是一种非常古老的技术,通常不受欢迎,但如果您必须支持 IE,您可以使用 <table>
,正如您在对 的评论中指定的那样。
table {
table-layout: fixed;
height: 200px;
width: 100%;
}
td {
text-align: center;
vertical-align: bottom;
background-color: blue;
}
<table>
<tr>
<td rowspan="2">Corina</td>
<td>Lydia</td>
<td rowspan="2">Reinas</td>
<td colspan="2">Elise</td>
<td rowspan="2">Vegerra</td>
</tr>
<tr>
<td rowspan="2">Agapi</td>
<td>Amira</td>
<td rowspan="2">Filipa</td>
</tr>
<tr>
<td>Daisy</td>
<td colspan="2">Josephine</td>
<td>Amarylis</td>
</tr>
</table>
请注意,table 不会像使用百分比时预期的那样对 height
做出反应(至少在 Firefox 61.0 中是这样)。
table {
table-layout: fixed;
height: 100%;
width: 100%;
}
td {
text-align: center;
vertical-align: bottom;
background-color: blue;
}
<table>
<tr>
<td rowspan="2">Corina</td>
<td>Lydia</td>
<td rowspan="2">Reinas</td>
<td colspan="2">Elise</td>
<td rowspan="2">Vegerra</td>
</tr>
<tr>
<td rowspan="2">Agapi</td>
<td>Amira</td>
<td rowspan="2">Filipa</td>
</tr>
<tr>
<td>Daisy</td>
<td colspan="2">Josephine</td>
<td>Amarylis</td>
</tr>
</table>
顺便说一句:写完这篇 table 我明白了为什么不推荐使用这种布局,因为在某些行中只缺少列是非常令人恼火的。
我建议使用 Unite Gallary. It is completely free and very easy to use. Try reading their documentation and it will be easy to use. Below is a screenshot.
我有下面的网格,我想把它转换成代码。
另一种方法是 css only,但我无法理解这背后的逻辑。
任何有助于良好开端继续的帮助都将不胜感激!
您可以设置一个 CSS 具有足够行数和列数的网格,并按照设计分布元素:
.container {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-template-rows: repeat(3, 1fr);
grid-column-gap: 10px;
grid-row-gap: 10px;
grid-auto-flow: column dense;
width: 95vw;
height: 95vh;
}
.vertical {
grid-row: span 2;
background-color: tomato;
}
.horizontal {
grid-column: span 2;
background-color: lightgreen;
}
.square {
background-color: lightblue;
}
#v2 {
grid-column-start: 3;
}
#v3 {
grid-column-start: 6;
}
#v4 {
grid-column-start: 2;
grid-row: 2 / 4;
}
#v5 {
grid-column-start: 5;
grid-row: 2 / 4;
}
<div class="container">
<div class="vertical" id="v1">V1</div>
<div class="vertical" id="v2">V2</div>
<div class="vertical" id="v3">V3</div>
<div class="vertical" id="v4">V4</div>
<div class="vertical" id="v5">V5</div>
<div class="horizontal" id="h1">H</div>
<div class="horizontal" id="h2">H</div>
<div class="square">S</div>
<div class="square">S</div>
<div class="square">S</div>
<div class="square">S</div>
</div>
我知道这是一种非常古老的技术,通常不受欢迎,但如果您必须支持 IE,您可以使用 <table>
,正如您在对
table {
table-layout: fixed;
height: 200px;
width: 100%;
}
td {
text-align: center;
vertical-align: bottom;
background-color: blue;
}
<table>
<tr>
<td rowspan="2">Corina</td>
<td>Lydia</td>
<td rowspan="2">Reinas</td>
<td colspan="2">Elise</td>
<td rowspan="2">Vegerra</td>
</tr>
<tr>
<td rowspan="2">Agapi</td>
<td>Amira</td>
<td rowspan="2">Filipa</td>
</tr>
<tr>
<td>Daisy</td>
<td colspan="2">Josephine</td>
<td>Amarylis</td>
</tr>
</table>
请注意,table 不会像使用百分比时预期的那样对 height
做出反应(至少在 Firefox 61.0 中是这样)。
table {
table-layout: fixed;
height: 100%;
width: 100%;
}
td {
text-align: center;
vertical-align: bottom;
background-color: blue;
}
<table>
<tr>
<td rowspan="2">Corina</td>
<td>Lydia</td>
<td rowspan="2">Reinas</td>
<td colspan="2">Elise</td>
<td rowspan="2">Vegerra</td>
</tr>
<tr>
<td rowspan="2">Agapi</td>
<td>Amira</td>
<td rowspan="2">Filipa</td>
</tr>
<tr>
<td>Daisy</td>
<td colspan="2">Josephine</td>
<td>Amarylis</td>
</tr>
</table>
顺便说一句:写完这篇 table 我明白了为什么不推荐使用这种布局,因为在某些行中只缺少列是非常令人恼火的。
我建议使用 Unite Gallary. It is completely free and very easy to use. Try reading their documentation and it will be easy to use. Below is a screenshot.