You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS实现row1居中、row2固定底部?适配多设备,优先用Flexbox/Grid

使用Flexbox实现响应式双元素布局

针对你需要的三种设备尺寸布局,我们可以用Flexbox结合媒体查询来实现,代码简单易懂,适合CSS新手。

核心思路

Flexbox能轻松控制元素的排列方向和占比,配合媒体查询(根据屏幕宽度调整样式),就能实现不同设备下的布局变化。

1. HTML结构

先搭建基础的HTML结构,用一个容器包裹row1和row2两个元素:

<div class="container">
  <div class="row1">row1</div>
  <div class="row2">row2</div>
</div>

2. CSS样式实现

基础样式(默认适配小屏设备,对应你右侧的布局)

设置容器为Flex布局,默认垂直排列元素,让两个元素紧凑分布:

.container {
  display: flex;
  flex-direction: column; /* 垂直排列子元素 */
  width: 100%;
  height: 200px; /* 小屏时容器高度 */
  border: 2px solid #333;
}

.row1, .row2 {
  flex: 1; /* 两个元素平分容器高度 */
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px dashed #666;
}

中屏设备适配(对应你中间的布局)

当屏幕宽度在600px到900px之间时,让row1占据大部分高度,row2只占小部分:

@media (min-width: 600px) and (max-width: 900px) {
  .container {
    height: 400px; /* 中屏时容器高度更高 */
  }
  .row1 {
    flex: 8; /* row1占8份高度 */
  }
  .row2 {
    flex: 2; /* row2占2份高度 */
  }
}

大屏设备适配(对应你左侧的布局)

当屏幕宽度大于900px时,让容器高度进一步增加,row1和row2各占约一半高度:

@media (min-width: 900px) {
  .container {
    height: 450px; /* 大屏时容器高度 */
  }
  .row1 {
    flex: 5; /* row1占5份高度 */
  }
  .row2 {
    flex: 5; /* row2占5份高度 */
  }
}

效果说明

  • 小屏(<600px):row1和row2上下紧凑排列,各占一半高度;
  • 中屏(600px-900px):容器高度增加,row1占据大部分空间,row2在底部占小部分;
  • 大屏(>900px):容器高度进一步增加,row1和row2各占约一半高度。

你可以根据实际需求调整容器高度、flex比例值以及媒体查询的宽度阈值,灵活适配不同设备。

内容的提问来源于stack exchange,提问作者huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:43:24