0

I have an <a> tag containing a background image and text. The problem is that the text sticks to the top of the image.

<a class="BigBlueButton" href="/where-is-my-order.aspx">
    Where Is My Order?
</a>

And my CSS is as follows:

.BigBlueButton
{
    width: 233px;
    vertical-align: middle;
    text-align: center;
    height: 122px;
    background: url(../img/GreenBotton.png) no-repeat;
    background-repeat: no-repeat;
    margin-bottom: 10px;
    margin-top: 10px;
    margin-left: 1%;
    display: inline-block;
    color: White;
    font-size: large;
    font-weight: bold;
    text-decoration: none;
    vertical-align: middle;
}

I have used line-height, but for tags with little bit larger texts the whole text does not display.

What is it with given the CSS and HTML content:

Normal one

And what I get with line-height:

With line-height

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
amir moradifard
  • 353
  • 1
  • 8
  • 26

4 Answers4

2

Just change display: inline-block; to display: table-cell;

jsFiddle

Adrift
  • 58,167
  • 12
  • 92
  • 90
1

In your situation you'll have to use a wrapper like a <span/>. See this Fiddle:

<a href="#"><span>Text</span></a>

With this CSS content:

a
{
    display: inline-block;
    float: left;
}

span
{
    width: 233px;
    height: 122px;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Linus Caldwell
  • 10,908
  • 12
  • 46
  • 58
1

I would use a div with padding. I don’t know if it's best practice though. Obviously, put the background in the div of the right size and use correct padding.

<a href="test.php">
    <div style="padding:10px;width:150px;border:1px #000 solid;text-align:center;">
        Hello!
    </div>
</a>
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Jack M.
  • 1,195
  • 13
  • 30
0

To solve this, finally I found the following workaround:

<a href="www.mydoamin.com" class="div_a">
    <span class="wrapper">
      <span class="div_txt">Contentdas asd ad adasd asd asdad </span>
    </span>
</a>
<a href="www.mydoamin.com" class="div_a">
    <span class="wrapper">
        <span class="div_txt">Content</span>
    </span>
</a>

And the following CSS

a.div_a {
    display: inline-table;
    width: 200px;
    height: 100px;
    background-color: #CCC;
    background-image: url(http://jsfiddle.net/img/logo.png);
    text-align: center;
}

.wrapper {
    display: table-cell;
    vertical-align: middle;
}

DEMO

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
amir moradifard
  • 353
  • 1
  • 8
  • 26