Search code examples
htmlcsshtml-tablevertical-alignment

Vertical align image and text in table


I found some articles and some threads here but none was exactly what I was looking for and I tried to modify them but didn't work as I wanted.

I have table with 1 row and 2 columns. The first column has a class with image - url(data). The other column has only text and I want to vertically align them both to middle.

Html:

<div id="more-time2" class="very-small-text-size more-time " index="2" mode="Available" onclick="toggle(this.getAttribute('index'), this.getAttribute('mode'))">
    <table>
        <tr>
            <td id="arr-icon2" class="accordion_down"> </td>
            <td id="more-time-text2" class="more-time-button" index="2">more time</td>
        </tr>
    </table>
</div>

Css:

body
{
  direction:rtl;
}
.more-time {
        display: table;
        width: 100%;
        color: dodgerblue
    }

    td.accordion_down {
        background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAUCAYAAACaq43EAAAABHNCSVQICAgIfAhkiAAAAaVJREFUSIm91c9KG1EUx/HvuRGzKVl2NxRnLD6DD1BoH2AOgWz6RxroypXgqiB0W+hGQSYiLoRm3FfotlAo3RUEF9USyEoQDIJlbDxdjC1VJ5mZNMnZzb3n3s/cxY8jS+0fc/DrEVOsKySZOeNBt8bRU8EWpwU7rOlilaQCdcNOpoEabEc6v+kANjXoCJWGQX/C6Lce1VcA7s9ipP5HkLUJumdGJYzVu7gBA/Tw3xiyPxnXLW3p3OHfr3+3YpU+zDaAzjhJQ95G6u/d+I3bTS31Tg0XGiTjQfnUw1+9vX4HTnH/C8jy/6N2ckm1HqvceUQmnOLBhsHu6Ch9odLYUa+btT8QBqhSaxp2MKL9Ok1Kdkne6eft4wVH/ytwr6hoyH5LgyfDeoa+GCCNgHtWFAU618kYWrkwQKT+nsG7vD6DxHBhS73TscAAPYIVQz4P75LlNBH5VRiOVZJLZsNBw8Rgt6XBRtH7CsMAO+p1s4aJYQdVas0yd5WCIXOYnF9BuK73z8vckxunQfWi/f2DYI+BeqTz78uenxkVTiPz82WkD0ujAL8B/TCG0encSKQAAAAASUVORK5CYII=');
        width: 12%;
        background-repeat: no-repeat;
        background-size: contain;
        display: table-cell;
        vertical-align: middle;
    }

    td.more-time-button {
        display: table-cell;
        vertical-align: middle;
        padding-right: 4%;
        width: 100%;
        padding: 0.25% 0;
    }

Added code in JsFiddle also.

How can I vertical align the data in the table?


Solution

  • Your image is a background image so you need to position it with background-position: center;

    Here's a handy article on CSS backgrounds.