2013-03-18 3 views
12

У меня здесь сложная проблема. Я хотел бы вертикальное выравнивание моего текста внутри кнопкиТекст кнопки по вертикали

<button id="rock" onClick="choose(1)">Rock</button> 

А вот мой CSS

button { 
    font-size: 22px; 
    border: 2px solid #87231C; 
    border-radius: 100px; 
    width: 100px; 
    height: 100px; 
    color: #FF5A51; 
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; 
} 
button:active { 
    font-size: 22px; 
    border: 2px solid red; 
    border-radius: 100px; 
    width: 100px; 
    height: 100px; 
} 

Вы можете проверить его здесь http://jsfiddle.net/kA8pp/. Я хочу, чтобы текст был внизу. Большое спасибо!

EDIT: Я не могу объяснить это хорошо, так вот картина этого http://i.imgur.com/WGKltUa.png :)

+1

Что вы имеете в виду внизу, например, под рисунком или только в нижней части изображения? – npage

+0

Внутри кнопки. – Kyrbi

ответ

6

Попробуйте padding-top:65px; в классе кнопки

button { 
    font-size: 22px; 
    border: 2px solid #87231C; 
    border-radius: 100px; 
    width: 100px; 
    height: 100px; 
    color: #FF5A51; 
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; 
    padding-top:65px; 
} 

JS Fiddle Demo

+0

Да, это работает, спасибо. :) – Kyrbi

+10

только хорошее решение, если содержимое кнопки статично – Horse

14

Вы можете использовать line-height для достижения своей цели.

button { 
    font-size: 22px; 
    border: 2px solid #87231C; 
    border-radius: 100px; 
    width: 100px; 
    height: 100px; 
    color: #FF5A51; 
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; 
    line-height: 150px; 
    overflow: visible; 
} 

http://jsfiddle.net/kA8pp/2/

+0

Я буду использовать padding-top: 65px; как кто-то сказал это здесь. Но большое спасибо.:) – Kyrbi

+0

+1, собирался написать тот же ответ. @ MíraKapičiak, Padding - неправильный способ решить эту проблему. Это правильный путь. – Starx

+0

прохладный. используя линейную высоту, я могу поместить текст внизу, но как насчет вертикального выравнивания его вверх? –

2

Кнопки стиль по-разному: вариация на тему Стилизация

Элемент <button> ведет себя немного иначе, чем некоторые другие элементы, например <div>. Если вы установили display: table-cell в кнопку, это не повлияет на макет, поэтому vertical-align позволит вам контролировать положение текста.

С другой стороны, можно сделать следующее:

<div class="button" id="rock" onClick="choose(1)">Rock</div> 

и использовать следующий CSS:

.button { 
    font-size: 22px; 
    border: 2px solid #87231C; 
    border-radius: 100px; 
    width: 100px; 
    height: 90px; 
    color: #FF5A51; 
    text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; 
    display: table-cell; 
    vertical-align: bottom; 
    text-align: center; 
    padding-bottom: 10px; 
} 

В этом случае, у вас есть некоторый контроль, регулируя отступы и высоту.

Если вы привязываете действие JavaScript к элементу, на самом деле не имеет значения, что такое тег, div или кнопка.

Этот подход может иметь некоторые преимущества в конкретных ситуациях.

Если вы применили вышеуказанный CSS к тегу кнопки, это не сработает. Хорошо знать.

http://jsfiddle.net/audetwebdesign/QSap8/

8

Вы можете использовать flexbox (проверьте browser support, в зависимости от ваших потребностей).

button { 
    display: inline-flex; 
    align-items: flex-end; 
} 
+0

Спасибо за это. –

+0

да, спасибо, что это сработало для меня. дисплей часть особенно. –

0

Это должно сработать для вас!

<pre> 
.button{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-weight: normal; 
    color: #444; 
    width: 32px; 
    padding: 2px; 
    margin-left: 5px; 
    background-color: #fdfdfd; 
    border: 1px solid #cdcdcd; 
    cursor: pointer; 
} 
</pre> 
Смежные вопросы