Как выровнять текст центра в пользовательских кнопках?

у меня есть этот html

<head>
<title>HTML5 App</title>

<link rel="stylesheet" type="text/css" href="css/custom.css"> 
<link rel="stylesheet" type="text/css" href="css/buttons.css"> 

</head>

<body>
<!--Estructura -->


<div id="botones">
    <button class="btn" data-am-type="button">Soy un &lt;button&gt;</button>
    <a class="btn" data-am-type="button">Soy un &lt;a&gt;</a>
    <div class="btn" data-am-type="button">Soy un &lt;div&gt;</div>
    <input class="btn" type="button" value="Soy un <input>">
</div>

</body>

в и текст выравнивается по центру кнопки, но в и текст отображается вверху кнопки. Я думаю, что и наследуют некоторое свойство, и поэтому они выравнивают текст в середине кнопки.

Я вижу

pic

и я хочу, чтобы все кнопки выровнять текст посередине.

класс " btn " - это

.btn{
display: inline-block;
padding: 4px 12px; /* Padding por defecto */
font-size: 16px;  /* Tamaño fuente por defecto */
line-height: 20px; /* Tamaño de linea */
text-align: center;
vertical-align: middle;

font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;

cursor: pointer;
height: 80px;
background-color: #f5f5f5; /* por si no se ve el gradiente, aunque si lo pruebo en Chrome nunca deberia verse este color*/
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));

border: 1px solid #cccccc;
-webkit-border-radius: 4px;
 }

есть идеи?

8 ответов


чтобы вертикально центрировать текст этих элементов, просто установите line-height текста элемента, равного height элемента и set box-sizing to border-box (для того, чтобы height из всех элементов одинаковы:

.btn {
    /* other, unchanged, CSS */
    line-height: 80px; /* <- changed this */
    box-sizing: border-box; /* <- added this */
}

JS Fiddle demo.

очевидно, что это вызывает проблемы, если текст переносится на вторую строку.


пожалуйста, сняли padding:4px 12px; из класса btn и установить line-height: согласно вашему требованию, текст должен находиться в центре поля.


Я думаю, создать высоту с установкой заполнения для a элемент.


border: none;
outline: 0;
cursor: pointer;
text-decoration: none;
overflow: visible;
background: none;
padding:0 16px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
color: #222

надеюсь, это полезно


должно быть, просто: линия-высота: 0,25 em;


добавить display:table-cell; для .класс БТН.

как

.btn{display:table-cell;}

это создаст вертикальное выравнивание для Div а также a элементы, имеющие класс .btn. Надеюсь, это поможет.


удалить этого : height: 80px;

ваш утеплитель : padding: 4px 12px;

после удаления высота заполнения должна быть ~ padding: 30px 12px;

вы должны установить заполнение штраф (на основе высоты текста).


vertical-align:center;

используйте это, и он будет работать