在 CSS3 中,**响应式布局(Responsive Layout)**的核心目标是:让页面在不同屏幕尺寸(手机、平板、桌面)下都能良好显示。下面从常用技术到实战示例系统讲解。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
✅ 否则移动端会按 980px 缩放显示,导致布局错乱。
根据设备宽度应用不同样式。
/* 默认样式(移动优先) */
body {
font-size: 14px;
}
/* 平板 */
@media (min-width: 768px) {
body {
font-size: 16px;
}
}
/* 桌面 */
@media (min-width: 1024px) {
body {
font-size: 18px;
}
}
常用断点参考:
320–480px 手机
768px 平板
1024px 笔记本
1200px+ 大屏
适合一维布局(横向 / 纵向)
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 1 200px;
}
✅ 自动换行、自动适应宽度
适合二维布局(行列同时控制)
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
✅ 非常简洁、强大
避免写死宽度
width: 100%;
max-width: 1200px;
font-size: 1rem;
padding: 2vw;
常用单位:
| 单位 | 说明 |
|---|---|
| % | 相对父元素 |
| rem | 相对根字体 |
| vw/vh | 视口宽高 |
| em | 相对当前字体 |
img {
max-width: 100%;
height: auto;
}
先写小屏样式,再用媒体查询增强大屏:
.box {
width: 100%;
}
@media (min-width: 768px) {
.box {
width: 50%;
}
}
.row {
display: flex;
flex-wrap: wrap;
}
.col {
flex: 1;
}
@media (max-width: 768px) {
.col {
flex: 0 0 100%;
}
}
.mobile-only {
display: block;
}
.desktop-only {
display: none;
}
@media (min-width: 768px) {
.mobile-only {
display: none;
}
.desktop-only {
display: block;
}
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 1 100%;
padding: 20px;
background: #4caf50;
color: #fff;
margin: 10px;
}
@media (min-width: 768px) {
.item {
flex: 1 1 45%;
}
}
@media (min-width: 1024px) {
.item {
flex: 1 1 30%;
}
}
✅ 使用 meta viewport
✅ 优先使用 Flex / Grid
✅ 少写固定宽度(px)
✅ 移动优先
✅ 多设备测试(Chrome DevTools)
clamp() 响应式字体font-size: clamp(14px, 2vw, 20px);
如果你愿意,我可以: ✅ 帮你写一个 响应式页面模板 ✅ 用 Flex / Grid 对比讲解 ✅ 针对 某个具体布局(导航 / 卡片 / 后台) 详细拆解
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。