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
  • 28,342
  • 21
  • 95
  • 123
amir moradifard
  • 323
  • 1
  • 8
  • 23

4 Answers4

2

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

jsFiddle

Jason Yaraghi
  • 51,338
  • 11
  • 87
  • 88
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:

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

span
{
    width:233px;
    height:122px;
    display: table-cell;
    vertical-align:middle;
    text-align:center;
}
Linus Caldwell
  • 10,316
  • 12
  • 43
  • 56
1

I would use a div with padding. I dont know if its 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>
Jack M.
  • 1,176
  • 12
  • 28
0

To solve this, finally I found 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 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

amir moradifard
  • 323
  • 1
  • 8
  • 23