Fill remaining vertical space with CSS using display:flex

后端 未结 5 1377
天命终不由人
天命终不由人 2020-11-21 11:06

In a 3-row layout:

  • the top row should be sized according to its contents
  • the bottom row should have a fixed height in pixels
  • the middle row s
5条回答
  •  误落风尘
    2020-11-21 12:10

    Make it simple : DEMO

    section {
      display: flex;
      flex-flow: column;
      height: 300px;
    }
    
    header {
      background: tomato;
      /* no flex rules, it will grow */
    }
    
    div {
      flex: 1;  /* 1 and it will fill whole space left if no flex value are set to other children*/
      background: gold;
      overflow: auto;
    }
    
    footer {
      background: lightgreen;
      min-height: 60px;  /* min-height has its purpose :) , unless you meant height*/
    }
    header: sized to content
    (but is it really?)
    main content: fills remaining space
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    footer: fixed height in px

    Full screen version

    section {
      display: flex;
      flex-flow: column;
      height: 100vh;
    }
    
    header {
      background: tomato;
      /* no flex rules, it will grow */
    }
    
    div {
      flex: 1;
      /* 1 and it will fill whole space left if no flex value are set to other children*/
      background: gold;
      overflow: auto;
    }
    
    footer {
      background: lightgreen;
      min-height: 60px;
      /* min-height has its purpose :) , unless you meant height*/
    }
    
    body {
      margin: 0;
    }
    header: sized to content
    (but is it really?)
    main content: fills remaining space
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    x
    footer: fixed height in px

提交回复
热议问题