Search code examples
csshtmlformattingalignment

CSS inline-block alignment issue


I'm trying to get the pictures to get ".other-wrap" to vertically align with the picture on the left. I've tried adding a margin or a border but for some reason this pushes ".other-wrap" down and further out of alignment. Can anyone explain what's causing this behavior and what css I can add to ".other-wrap" to get it to align without changing the html structure.

fiddle

Html:

<div id="588970897807405-list" class="main">
<div id="588970897807405" class="main-wrap">
   <div class="inner-wrap">
      <div class="inner-name-wrap" style="font-size: 10pt;">
         <div class="inner-name">header</div>
      </div>
      <div class="inner-img-wrap">
         <img id="588970897807405-event-img" class="inner-img" src="http://nodogaboutit.files.wordpress.com/2012/10/j04310181.jpg">
      </div>
      <div class="formatted-footer-wrap" style="font-size: 10pt;">
         <div class="footer">footer</div>
      </div>
   </div>
   <div class="other-wrap">
      <div class="other-inner">
         <div class="other-img-wrap"><img class="other-img" width="120" height="120" src="http://www.petfinder.com/wp-content/uploads/2012/11/99059361-choose-cat-litter-632x475.jpg"></div>
      </div>
   </div>
</div>

CSS:

.main .inner-img{
vertical-align:middle;
margin:auto;
display:block;
width:120px;
height:120px;
top:0px;
}

.other-wrap{

    /*border:solid black 15px;*/
    margin:15px;
}

.main .inner-name-wrap{
    white-space:nowrap;
    width:150px;
    font-size:14px;
    text-overflow:ellipsis;
    font-weight:normal;
    display:block;
    color:white;
    background:black;
}

.main .formatted-footer-wrap{
    color:white;
    display:block;
    font-size:10px;
    width:150px;
    background:black;
}

.main .other-wrap{
    display:inline-block;
    font-size:12px;
}

.main .formatted-time-wrap{
    display:none;
    font-size:10px;
}

.inner-wrap{
    display:inline-block;
    border:solid hsl(0, 100%, 100%) 1px;    
}

Solution

  • It seems you need vertical-align.

    Try vertical-align: middle:

    .main-wrap{
        font-size: 0; /* To fix extra space due to whitespaces in HTML */
    }
    .other-wrap, .inner-wrap{
        display:inline-block;
        vertical-align: middle;
        margin: 15px;
    }
    

    Demo