How to center an image horizontally and align it to the bottom of the container?

前端 未结 7 1523
执念已碎
执念已碎 2021-01-31 15:29

How can I center an image horizontally and aligned to the bottom of the container at the same time?

I have been able to center the image horizontally by its self. I hav

相关标签:
7条回答
  • 2021-01-31 15:50

    This also works (taken a hint from this question)

    .image_block {
      height: 175px;
      width:175px;
      position:relative;
    }
    .image_block a img{
     margin:auto; /* Required */
     position:absolute; /* Required */
     bottom:0; /* Aligns at the bottom */
     left:0;right:0; /* Aligns horizontal center */
     max-height:100%; /* images bigger than 175 px  */
     max-width:100%;  /* will be shrinked to size */ 
    }
    
    0 讨论(0)
  • 2021-01-31 15:50
    #header2
    {
       display: table-cell;
       vertical-align: bottom;
       background-color:Red;
    }
    
    
    <div style="text-align:center; height:300px; width:50%;" id="header2">
    <div class="right" id="header-content2">
      <p>this is a test</p>
    </div>
    </div>
    
    0 讨论(0)
  • 2021-01-31 15:59

    wouldn't

    margin-left:auto;
    margin-right:auto;
    

    added to the .image_block a img do the trick?
    Note that that won't work in IE6 (maybe 7 not sure)
    there you will have to do on .image_block the container Div

    text-align:center;
    

    position:relative; could be a problem too.

    0 讨论(0)
  • 2021-01-31 16:00
    .image_block    {
        width: 175px;
        height: 175px;
        position: relative;
    }
    
    .image_block a  {
        width: 100%;
        text-align: center;
        position: absolute;
        bottom: 0px;
    }
    
    .image_block img    {
    /*  nothing specific  */
    }
    

    explanation: an element positioned absolutely will be relative to the closest parent which has a non-static positioning. i'm assuming you're happy with how your .image_block displays, so we can leave the relative positioning there.

    as such, the <a> element will be positioned relative to the .image_block, which will give us the bottom alignment. then, we text-align: center the <a> element, and give it a 100% width so that it is the size of .image_block.

    the <img> within <a> will then center appropriately.

    0 讨论(0)
  • 2021-01-31 16:09

    This is tricky; the reason it's failing is that you can't position via margin or text-align while absolutely positioned.

    If the image is alone in the div, then I recommend something like this:

    .image_block {
        width: 175px;
        height: 175px;
        line-height: 175px;
        text-align: center;
        vertical-align: bottom;
    }
    

    You may need to stick the vertical-align call on the image instead; not really sure without testing it. Using vertical-align and line-height is going to treat you a lot better, though, than trying to mess around with absolute positioning.

    0 讨论(0)
  • 2021-01-31 16:11

    have you tried:

    .image_block{
    text-align: center;
    vertical-align: bottom;
    }
    
    0 讨论(0)
提交回复
热议问题