用 Flex 实现以下布局:三栏布局(左固定200px,中间自适应,右固定150px)
.container {
display: flex;
min-height: 100vh;
}
.left {
flex: 0 0 200px; /* 不伸缩,固定 200px */
background: #f0f0f0;
}
.main {
flex: 1; /* 占满剩余空间 */
background: #fff;
}
.right {
flex: 0 0 150px; /* 不伸缩,固定 150px */
background: #f0f0f0;
}<div class="container">
<aside class="left">左侧栏</aside>
<main class="main">中间内容</main>
<aside class="right">右侧栏</aside>
</div>进阶:圣杯布局(中间优先加载)
<!-- HTML 顺序:main 先于 left/right -->
<div class="container">
<main class="main">中间内容</main>
<aside class="left">左侧栏</aside>
<aside class="right">右侧栏</aside>
</div>.container {
display: flex;
}
.main { flex: 1; order: 2; }
.left { flex: 0 0 200px; order: 1; }
.right { flex: 0 0 150px; order: 3; }其他方案对比
Grid 方案(更简洁):
.container {
display: grid;
grid-template-columns: 200px 1fr 150px;
}float 方案(传统):
.left { float: left; width: 200px; }
.right { float: right; width: 150px; }
.main { margin: 0 150px 0 200px; }