Если у вас есть фиксированная высота в вашем контейнере, вы можете установить высоту линии так же, как и высоту, и она будет центрироваться по вертикали. Затем просто добавьте выравнивание текста в центр по горизонтали.
Вот пример: http://jsfiddle.net/Cthulhu/QHEnL/1/
EDIT
Ваш код должен выглядеть следующим образом:
.img_thumb {
float: left;
height: 120px;
margin-bottom: 5px;
margin-left: 9px;
position: relative;
width: 147px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 3px;
line-height:120px;
text-align:center;
}
.img_thumb img {
vertical-align: middle;
}
Изображения будут всегда по центру по горизонтали и по вертикали, независимо от того, что их размер , Вот еще 2 примера с изображениями с различными размерами:
http://jsfiddle.net/Cthulhu/QHEnL/6/
http://jsfiddle.net/Cthulhu/QHEnL/7/
UPDATE
Это теперь 2016 (будущее!) И выглядит как несколько вещей, которые меняются (наконец-то! !).
Назад в 2014, Microsoft announced, что он остановит поддержку IE8 во всех версиях Windows и будет поощрять всех пользователей обновляться до IE11 или Edge. Ну, это должно произойти в следующий вторник (12 января).
Почему это имеет значение? С объявленной смертью IE8, мы можем, наконец, начать использовать CSS3 магия.
С этим, как говорится, вот обновленный способ выравнивания элементов, как по горизонтали, так и по вертикали:
.container {
position: relative;
}
.container .element {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
Используя этот transform: translate();
метод, вы даже не нужно иметь фиксированную высоту в контейнере, он полностью динамичен. Ваш элемент имеет фиксированную высоту или ширину? Ваш контейнер также? Нет? Это не имеет значения, он всегда будет центрирован, потому что все свойства центрирования фиксированы для ребенка, он не зависит от родителя. Спасибо CSS3.
Если вам нужно только центрировать в одном измерении, вы можете использовать translateY
или translateX
. Просто попробуйте некоторое время, и вы увидите, как это работает. Кроме того, попробуйте изменить значения translate
, вы найдете его полезным для множества разных ситуаций.
Здесь есть новая скрипка: https://jsfiddle.net/Cthulhu/1xjbhsr4/
Для получения дополнительной информации о transform
, here's a good resource.
Счастливое кодирование.
извините, но высота изображения не совпадает со всеми изображениями! также ширина не одинакова для всех изображений, поэтому мне нужно, чтобы маржа слева и margin-right была установлена на auto – aainaarz
Но разве высота не всегда одинакова для .img_thumb? – Cthulhu
высота div в изображении ведьмы размещена 120px, но изображение ее может иметь высоту max: 120px и min: 1px (теоретически). + это предназначено для галереи, поэтому одно изображение - высота 80px секунд 40px third 109px .. и так одно! – aainaarz