treehouse : what would you like to learn today?
Web Design Web Development iOS Development

How can text be aligned vertically against an image?

  • I have an image, and a text block after it. I would like to align this text so that it is in the "middle" (so that it is equal to the top and bottom) of the image, preferably without using other elements, so that it is completely reliant upon CSS.

    The same solution needs to be used within a <div> and a <button> element.

    Example: http://h4xr.org/k8x7

    The "Add Sleep" text should appear centrally aligned towards the "plus" icon.

    Thanks,

    Nick
  • Wrap your text in a span and use the image as its background with a bit of left padding.
    <span class=\"sleep\">Add Sleep</span>

    and the CSS:
    .sleep {
    background: url(path_to_your_image/image.png) no-repeat scroll left center;
    padding:0 0 0 30px;
    }

    Adjust the padding to suit.
  • Thank you. Doing it as a background never came to mind.

    Thanks,

    Nick
  • Very simple solution:

    img { vertical-align: middle; }


    This is the exact purpose of the vertical-align. It works perfectly cross-browser assuming that the img element remains an inline element and it's in a row of other inline elements.