CSS flex 三栏-中间元素自动最大宽度或高度

目录

使用 flex 布局,两端元素默认内容宽度,中间元素自动扩充到最大宽度。
|left| <- center -> |right|

HTML

<div class="h">
 <div class="left">左/上</div>
 <div class="middle"></div>
 <div class="right">右/下</div>
</div>

<br />

<div class="v">
 <div class="left">左/上</div>
 <div class="middle"></div>
 <div class="right">右/下</div>
</div>

CSS

div {
  border: 1px solid #ccc;
}

.h {
  /* 水平/横向 */
  display: flex;
  flex-direction: row;
}

.v {
  /* 垂直/纵向 */
  display: flex;
  flex-direction: column;
  height: 300px; /* 需要设置固定高度 */
}

.middle {
  flex: 1 1 auto; /* flex-grow | flex-shrink | flex-basis */
  align-items: center; /* 元素水平居中 */
  text-align: center; /* 文本水平居中 */
  align-content: center; /* 元素垂直居中 */
}
.left,
.right {
  /* nothing */
}