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 have also been able to align the bottom of the container by its self. But I have not been able to do both at the same time.
Here is what I have:
.image_block {
width: 175px;
height: 175px;
position: relative;
margin: 0 auto;
}
.image_block a img {
position: absolute;
bottom: 0;
}
<div class="image_block">
<a href="..."><img src="..." border="0"></a>
</div>
That code aligns the image to the bottom of the div. What do I need to add/change to make it also center the image horizontally inside the div? The image size is not known before hand but it will be 175x175 or less.
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, wetext-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.have you tried:
wouldn't
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 Divposition:relative;
could be a problem too.This also works (taken a hint from this question)
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:
You may need to stick the
vertical-align
call on the image instead; not really sure without testing it. Usingvertical-align
andline-height
is going to treat you a lot better, though, than trying to mess around with absolute positioning.Remove the
position: relative;
line. I'm not sure why exactly but it fixes it for me.