在 CSS3 中,响应式布局(Responsive Layout)通常是指:让页面能根据不同屏幕尺寸(手机、平板、桌面)自动调整结构和样式。常用手段主要有以下几种,实际项目中往往是组合使用。
响应式第一步,必须在 HTML 中加:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
否则手机上会按 980px 宽度渲染,响应式失效。
通过 @media 针对不同屏幕写样式。
/* 默认样式(手机优先) */
.container {
width: 100%;
}
/* 平板 */
@media (min-width: 768px) {
.container {
width: 750px;
}
}
/* 桌面 */
@media (min-width: 1024px) {
.container {
width: 1000px;
}
}
常见断点参考:
用相对单位代替固定 px。
.box {
width: 50%; /* 相对于父元素 */
height: 50vh; /* 视口高度的一半 */
font-size: 2vw; /* 随视口宽度变化 */
}
Flex 很适合做“自动换行 + 自适应”。
.flex-container {
display: flex;
flex-wrap: wrap;
}
.item {
flex: 1 1 200px; /* 最少200px,自动填充 */
}
屏幕小 → 自动变一列
屏幕大 → 自动变多列
CSS Grid 是响应式布局利器。
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
}
含义:
img {
max-width: 100%;
height: auto;
}
✅ 推荐:移动优先
/* 先写手机 */
.x { width: 100%; }
/* 再写大屏 */
@media (min-width: 768px) {
.x { width: 50%; }
}
<div class="box">内容</div>
.box {
width: 100%;
padding: 20px;
background: #f5f5f5;
}
@media (min-width: 768px) {
.box {
width: 50%;
margin: auto;
}
}
如果你愿意,我也可以:
你现在是想学原理,还是直接要代码?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。