Подтвердить что ты не робот

Вертикально центрирующий текст внутри встроенного блока

Я пытаюсь создать несколько кнопок для веб-сайта, используя стилизованные гиперссылки. Мне удалось получить кнопку, выглядящую так, как я хочу, запустив одну небольшую проблему. Я не могу получить текст ( "Ссылка" в исходном коде ниже) для вертикального центра.

К сожалению, может быть более одной строки текста, как показано на второй кнопке, поэтому я не могу использовать line-height для вертикального центрирования.

Моим первоначальным решением было использовать display: table-cell;, а не inline-block, и это сортирует проблему в Chrome, Firefox и Safari, но не в Internet Explorer, поэтому я думаю, что мне нужно придерживаться встроенного блока.

Как бы я поместил вертикальное центрирование текста ссылки в 57px x 100px inline-block и попросил ли он использовать несколько строк текста? Спасибо заранее.

CSS

.button {
    background-image:url(/images/categorybutton-off.gif);
    color:#000;
    display:inline-block;
    height:57px;
    width:100px;
    font-family:Verdana, Geneva, sans-serif;
    font-size:10px;
    font-weight:bold;
    text-align:center;
    text-decoration:none;
    vertical-align:middle;
}
.button:hover {
    background-image:url(/images/categorybutton-on.gif);
}
.button:before {
    content:"Click Here For\A";
    font-style:italic;
    font-weight:normal !important;
    white-space:pre;
}

HTML:

<a href="/" class="button">Link</a>
<a href="/" class="button">Link<br />More Details</a>
4b9b3361

Ответ 1

Оберните свой текст с помощью span (Centered) и напишите еще один пустой диапазон перед ним (Centerer), как это.

HTML:

<a href="..." class="button">
  <span class="Centerer"></span>
  <span class='Centered'>Link</span>
</a>

CSS

.Centered
{
    vertical-align: middle;
    display: inline-block;
}

.Centerer
{
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}

Посмотрите здесь: http://jsfiddle.net/xVnQ6/

Ответ 2

Большое спасибо @avrahamcool, работает как шарм!

У меня небольшое обновление. Вы можете заменить избыточный диапазон .Centerer css

.button:before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}

Смотрите демонстрацию здесь: http://jsfiddle.net/modernweb/bXD2V/

ПРИМЕЧАНИЕ. Это не будет работать с текстом в атрибуте content.