How to vertically center the contents of a flexbox item

前端 未结 2 1262
终归单人心
终归单人心 2021-01-31 16:52

I\'m trying to center the CONTENTS of a flexbox item while using justify-content:stretch; It appears that the old trick of using display:table-cell;vertical-a

相关标签:
2条回答
  • 2021-01-31 17:21

    It can be achieved by displaying each flex item as a flex container and then aligning the contents vertically by align-items property, as follows:

    .flex-container {
      display:flex;
      align-items:center;
      height: 200px; /* for demo */
    }
    
    .flex-item {
      align-self:stretch;
      display:flex;
      align-items:center;
      background-color: gold; /* for demo */
    }
    <div class="flex-container">
        <div class="flex-item">
          I want to be vertically centered!
          <s>But I'm not.</s>
      </div>
    </div>

    As a side-note, if you omit the align-items:center; declaration of the .flex-container you can safely remove align-self:stretch; from flex items as well.

    0 讨论(0)
  • 2021-01-31 17:21

    I'm not sure if I am interpreting your request correctly, but I think you are trying to use "justify-content:stretch;" when you should be using flex-grow.

    Im my sample I used flex:1 auto; which is just shorthand to set a couple of flex properties.

    HTML:

    <div class="flex-container">
        <div class="flex-item">I'm top dog!
        </div>
        <div class="flex-item flex-center">
            I want to be vertically centered! And I am!
        </div>
    </div>
    

    CSS:

    *{
        box-sizing:border-box;
        padding:5px;
    }
    .flex-container {
        border: 1px solid;
        display:flex;
        align-items:center;
        height: 100px;
    }
    .flex-item {
        flex: 1 auto;
        border: 1px solid green;
        height:100%;
        display:flex;
        justify-content:center;
    }
    .flex-center {
        align-items: center;
    }
    

    http://jsfiddle.net/p28tjskq/

    Flex property:
    https://developer.mozilla.org/en-US/docs/Web/CSS/flex

    0 讨论(0)
提交回复
热议问题