2016-10-02 14 views
0

Я хочу, чтобы отобразить юникод символы, расположенные в центре кнопки, смUnicode выравнивание символов

<div class="col-xs-1"> 
    <button class="btn btn-tool"> 
     <span></span> 
    </button> 
    </div> 

span:before { 
    font-family: "Arial Unicode MS"; 
    content: "\25cf"; 
    font-size: 3em; 
    vertical-align: middle; 
} 

Как описано here, я попытался изменить размер символа, используя

размера шрифта

и

вертикально-выровнять.

Как видно из JSFiddle, выравнивание не по желанию (символ центрирован как по горизонтали, так и по вертикали). Не могли бы вы помочь?

+0

Не забудьте пометить правильный ответ, нажав на флажок слева от него. – connexo

ответ

2

У вас есть несколько методов, доступных для горизонтального и вертикального центрирования. Вот что я предпочел бы:

.btn.btn-tool { 
 
    position: relative; 
 
    height: 200px; /* inserted height and width only for demonstration purposes */ 
 
    width: 80px; 
 
} 
 
span:before { 
 
    font-family: "Arial Unicode MS"; 
 
    content: "\25cf"; 
 
    font-size: 3em; 
 
    display: block; 
 
    position: absolute; 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
    text-align: center; 
 
    width: 100%; 
 
}
<button class="btn btn-tool"> 
 
    <span></span> 
 
</button>

https://jsfiddle.net/g8skps53/8/

+0

Если я правильно понимаю, ваш код говорит - установите символ Юникода как 'position: absolute', тогда' top: 50% 'говорит, что он понижает 50% от высоты родителей, а затем' tranform: translateY (-50%) 'говорит сдвинуть его обратно на 50% от собственной высоты символов юникода, так что, если родительская кнопка изменит размер, юникодный символ будет соответствующим образом отрегулировать. Это хорошо и может быть использовано и в разных ситуациях ... –

+0

У вас все получилось правильно. Это один из стандартных методов вертикального центрирования (который в течение 25 лет был больной осенью). – connexo

+0

Спасибо. Это хорошо решило мою проблему. – Otto

0

Вы можете удалить вертикальную выравнивать и вместо того, чтобы просто изменить высоту строки https://jsfiddle.net/39a4grvh/

.btn-tool { 
    width: 30px; 
    height: 30px; 
    padding: 0; 
    background-color: #4f4f4f; 
    color: #a19d9d; 
    line-height: 0.5; 
} 

span:before { 
    font-family: "Arial Unicode MS"; 
    content: "\25cf"; 
    font-size: 3em; 
} 
Смежные вопросы