实现思路
- 使用CSS Grid布局,通过
display: grid
将容器设置为网格布局模式。
- 利用媒体查询
@media
来区分大屏幕和小屏幕。
- 在大屏幕下,通过
grid-template-columns
定义列布局,让元素按A、B、C顺序排列。
- 在小屏幕下,同样利用
grid-template-columns
重新定义列布局,使元素顺序变为B、A、C。
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Responsive Grid Layout</title>
</head>
<body>
<div class="container">
<div class="box" id="A">A</div>
<div class="box" id="B">B</div>
<div class="box" id="C">C</div>
</div>
</body>
</html>
CSS代码
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.box {
background-color: lightblue;
padding: 20px;
text-align: center;
font-size: 20px;
}
/* 大屏幕样式 */
@media (min-width: 768px) {
.container {
grid-template-columns: repeat(3, 1fr);
}
#A {
grid-column: 1;
}
#B {
grid-column: 2;
}
#C {
grid-column: 3;
}
}
/* 小屏幕样式 */
@media (max-width: 767px) {
.container {
grid-template-columns: repeat(3, 1fr);
}
#A {
grid-column: 2;
}
#B {
grid-column: 1;
}
#C {
grid-column: 3;
}
}