Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • flex:1

flex:1

flex:1 是 CSS 中用于设置弹性盒子(flex box)布局的属性。它表示弹性盒子容器中的项目将占据剩余的可用空间。

语法

flex: 1;

示例

<div class="container">
  <div class="item">Item 1</div>
  <div class="item">Item 2</div>
  <div class="item">Item 3</div>
</div>

一个值的情况

.item {
  flex: 1;
  /* flex: 1 1 0px */
}

上面默认对应的值是 1 1 0,也就是 flex-grow: 1,flex-shrink:1, flex-basic: 0。

两个值的情况

.item {
  flex: 1 1;
  /* flex: 1 1 0px */
}

上面对应的值是 1 1 0,也就是 flex-grow: 1,flex-shrink:1, flex-basic: 0。

一个长度值 如果 flex 值是一个长度值,这会作用于 flex-basis。flex-grow 和 flex-shrink 默认为 1。

.item {
  flex: 100px;
  /* flex: 1 1 100px */
}

使用无单位 0 有时,你想把 flex-basis 设置为 0,你可能会这样写:

.item {
  flex: 0;
}

不建议这样做,因为让开发人员和浏览器感到困惑。你到底是要把 flex-grow 或者 flex-shrink 设置为 0,还是将 flex-basis 设置为 0。

所以,你应该添加一个单位,如 px 或%。

.item {
  flex: 0%;
  /* flex: 1 1 0% */
}

flex:initial 等同于设置 flex: 0 1 auto,可以理解为 flex 属性的默认值。

flex:none 等同于设置 flex: 0 0 auto,可以理解为 flex 属性的最小值。

可以看到应用了 flex:0 的元素全部高高耸起,一柱擎天,表现为最小内容宽度;而应用了 flex:none 的元素则无视容器的尺寸限制,直接溢出容器,没有换行,表现为最大内容宽度。

Edit this page
最近更新: 2025/12/2 01:46
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人