CSS 技能测试:网格

题目链接

任务一

任务二

题目要求:

在此例中,我们已经定义好了一个 grid, 请通过修改下面两个子元素的 CSS 规则,导致它们跨过彼此的网格轨道; 第二个 item 应该在第一个 item 之上 (如下图所示).

HTML 代码:

1
2
3
4
<div class="grid">
<div class="item1">One</div>
<div class="item2">Two</div>
</div>

CSS 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-template-rows: 100px 100px 100px;
gap: 10px;
}

.item1 {
grid-column: 1 / 4;
grid-row: 1 / 3;
}

.item2 {
grid-column: 2 / 5;
grid-row: 2 / 4;
}

如果要求第一个 item 在第二个 item 之上,则在 .item1 中加入代码 z-index: 1; 即可。

任务三

任务四

题目要求:

此例中,你需要同时使用 Grid Layout 和 Flexbox 来完成下图所示的任务。这个过程中你不需要通过改变 HTML 来完成。

HTML 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<div class="container">
<div class="card">
<img src="balloons1.jpg" alt="a single red balloon">
<ul class="tags">
<li>balloon</li>
<li>red</li>
<li>sky</li>
<li>blue</li>
<li>Hot air balloon</li>
</ul>
</div>
<div class="card">
<img src="balloons2.jpg" alt="balloons over some houses">
<ul class="tags">
<li>balloons</li>
<li>houses</li>
<li>train</li>
<li>harborside</li>
</ul>
</div>
<div class="card">
<img src="balloons3.jpg" alt="close-up of balloons inflating">
<ul class="tags">
<li>balloons</li>
<li>inflating</li>
<li>green</li>
<li>blue</li>
</ul>
</div>
<div class="card">
<img src="balloons4.jpg" alt="a balloon in the sun">
<ul class="tags">
<li>balloon</li>
<li>sun</li>
<li>sky</li>
<li>summer</li>
<li>bright</li>
</ul>
</div>
</div>

CSS 代码:

1
2
3
4
5
6
7
8
9
10
11
.container {
display: grid;
grid-template-columns: repeat(3,1fr);
grid-gap: 10px;
}

.tags {
display: flex;
flex-wrap: wrap;
justify-content: center;
}