2012-03-04 1 views
1

Я создал простую полосу, на которой размещается текстовое содержимое, которое выглядит как изображение ниже. Strip showing text above itПроблемы выравнивания текста в CSS-генерируемой полосе

и CSS для то же самое:

.strip { 
    display: block; 
    margin: auto; 
    float: left; 
    width: 6em; 
    height: 2em; 
    background: #090909; 
    color: white; 
    font-weight: bold; 
    text-align: center; 
} 

Теперь, что я пытаюсь сделать, чтобы получить текст в середине полосы, как по горизонтали, так и по вертикали, в то время как text-align: center помогает мне достичь горизонтального центрирования текста. Я не могу получить текст по вертикали по центру. Обратите внимание, что мой знак равен <div class="strip">12345678</div>, и я не хочу использовать span в этом div. И хотите, чтобы разметка была максимально чистой. Как я могу достичь такого поведения?

Спасибо.

ответ

2

Добавить высоту линии, равную высоте div. Проверьте это http://jsfiddle.net/VRBrr/2/

line-height:2em; 
+0

Ярмарка достаточно. Я тоже искал такую ​​вещь. Спасибо – AbdulAziz

+0

Я играл с разными значениями 'line-height', но не работал. Зачем нужна линия-высота, такая же, как высота полосы? – Kushal

+0

, потому что он устанавливает высоту строки содержимого, оставляя равное расстояние выше и ниже содержимого, следовательно, вертикальное выравнивание текста по центру. Также обратите внимание, что это решение будет работать только в том случае, если у вас есть однострочный контент. – Abhidev