pro-collection / interview-question

目标:收集全网经典面试问题
536 stars 37 forks source link

flex:1 代表什么【热度: 400】 #787

Open yanlele opened 1 month ago

yanlele commented 1 month ago

关键词:flex 布局相关属性问题

在 CSS 的弹性盒模型(Flexbox)中,flex: 1表示子项(flex 子项)的伸缩性。

具体来说,flex: 1flex-growflex-shrinkflex-basis三个属性的简写。其默认值等同于flex: 1 1 0%,分别代表以下含义:

flex: 1经常用于自适应布局。例如,将父容器的display设置为flex,侧边栏大小固定后,将内容区设置为flex: 1,内容区则会自动放大占满剩余空间。

以下是一个简单的示例代码,展示了flex: 1的效果:

<!DOCTYPE html>
<html>
  <head>
    <style>
      .container {
        display: flex;
        width: 300px;
        height: 200px;
        background-color: lightblue;
      }

      .item1 {
        background-color: lightcoral;
        flex: 1;
      }

      .item2 {
        background-color: lightgreen;
        flex: 1;
      }
    </style>
  </head>

  <body>
    <div class="container">
      <div class="item1">item1</div>
      <div class="item2">item2</div>
    </div>
  </body>
</html>

在上述代码中,.container是一个 flex 容器,它包含两个子元素.item1.item2,并且都将flex属性设置为1。当调整.container的宽度时,.item1.item2会等比例地增大或缩小,以占满剩余空间。