<body>
<div class="container">
<div class="box">
<img src="./1.png" alt="" />
<p>接触动物和动物产品后,要用肥皂和水洗手</p>
</div>
<div class="box">
<img src="./2.png" alt="" />
<p>咳嗽和打喷嚏时,用弯曲的肘部或纸巾捂住口鼻</p>
</div>
<div class="box">
<img src="./3.png" alt="" />
<p>如果发烧和咳嗽,避免旅行</p>
</div>
<div class="box">
<img src="./4.png" alt="" />
<p>如果发烧,咳嗽和呼吸困难,请尽早就医</p>
</div>
<!-- <div class="box">
<img src="./5.png" alt="">
<p>如果您咳嗽或打喷嚏,请戴上口罩,并且必须知道如何使用并妥善处理</p>
</div> -->
<div class="box">
<div class="title">瀑布流布局</div>
<p class="sub-title">仅仅使用 CSS Grid</p>
</div>
<div class="box">
<img src="./6.png" alt="" />
<p>只吃煮熟的食</p>
</div>
<div class="box">
<img src="./7.png" alt="" />
<p>避免与生病的动物密切接触</p>
</div>
</div>
</body>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: '微软雅黑', sans-serif;
}
body{
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
background: #222;
}
body img{
max-width: 128px;
}
.container{
position: relative;
max-width: 100%;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
grid-template-rows: minmax(100px, auto);
grid-auto-flow: dense;
margin: 40px;
grid-gap: 10px;
}
.container .box{
background: #333;
padding: 20px;
display: grid;
font-size: 20px;
place-items: center;
text-align: center;
color: #fff;
transition: 0.5s;
}
.container .box:hover{
background: #e91e63;
}
.container .box img{
position: relative;
max-width: 100px;
margin-bottom: 10px;
}
.container .box:nth-child(1){
grid-column: span 2;
grid-row: span 1;
}
.container .box:nth-child(2){
grid-column: span 1;
grid-row: span 2;
}
.container .box:nth-child(4){
grid-column: span 1;
grid-row: span 3;
}
.container .box:nth-child(5){
grid-column: span 3;
grid-row: span 2;
}
@media (max-width: 991px) {
.container{
grid-template-columns: repeat(auto-fill, minmax(50%, 1fr));
grid-template-rows: minmax(auto, auto);
}
.container .box{
grid-column: unset !important;
grid-row: unset !important;
}
}
.title{
font-family: "League-Gothic", Courier;
font-size: 60px;
text-transform: uppercase;
color: #fff;
text-shadow: 0 0 20px #fefcc9, 10px -10px 30px #feec85, -20px -20px 40px #ffae34, 20px -40px 50px #ec760c, -20px -60px 60px #cd4606, 0 -80px 70px #973716, 10px -90px 80px #451b0e;
}
.sub-title{
font-size: 20px;
text-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #fff, 0 0 40px #ff00de, 0 0 70px #ff00de, 0 0 80px #ff00de, 0 0 100px #ff00de, 0 0 150px #ff00de;
}
关键点:
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
grid-template-rows: minmax(100px, auto);
这是实现自适应的第一步
这部分,用于自适应控制大小
配合: grid-auto-flow: dense;
实现自动填充
最后:
@media (max-width: 991px) {
.container{
grid-template-columns: repeat(auto-fill, minmax(50%, 1fr));
grid-template-rows: minmax(auto, auto);
}
.container .box{
grid-column: unset !important;
grid-row: unset !important;
}
}
用于实现响应式