7
У меня есть img в floated div, и я не знаю, как центрировать его по вертикали.CSS вертикальное выравнивание
<div style="height: 300px">
<img style="height: 50px" src="something" />
</div>
вертикальный вылет: средний конечно не работает.
Два способа, упомянутых в этой статье, были предоставлены уже как отдельные ответы, но вы были бы лучше CSSer, если бы знали, для чего фактически использовался вертикальный выравнивание: http://phrogz.net/css/vertical-align/ – scragz
@scragz - Это хорошая ссылка. Хотя, я бы не использовал 'display: table-cell'. Конечно, я бы не использовал свой предложенный ответ '
https://pbs.twimg.com/media/B2mW8NiCQAA6IIP.jpg – walv
ответ
вертикально выравнивать текст в родительском элементе, и имейте в виду, что
img
это инлайн -элементное и так ведет себя аналогично к тексту, вы можете просто установитьline-height
кheight
родительского элемента:JS Fiddle demo.
источник
2011-01-24 18:56:31
vertical-align
свойство только действительно хорошо наtd
элементов. Попробуйте что-то вроде:ИЛИ, так как вы знаете, высоту и ширину
img
:источник
2011-01-24 18:53:47 Jason
ZOMG, ни один из вышеперечисленных мне не подходит, я имею в виду, что в css есть серьезная дыра, они развивают тени и т. Д., И мы должны использовать таблицы еще или на divs в divs, чтобы центрировать по вертикали ... Святая корова. Я должен использовать divs. И я не могу использовать второй код, потому что высота div будет изменена пользователями. Поэтому я потерян. – anonymous
@ anonymous: можете ли вы использовать JavaScript или любые JS-библиотеки (MooTools, Scriptaculous, jQuery, Glow ...)? –
Стиль
vertical-align
CSS определяет выравнивание текста в его текстовой строке. Это позволяет, например, указать текст в виде верхнего или нижнего индекса.Таким образом, он фактически не предназначен для вертикального выравнивания элемента внутри коробки.
Существует явное исключение из этого правила, однако - ячейки таблицы (т.е.
<td>
и<th>
элементов) используютvertical-align
стиль, чтобы сделать именно это: выравнивание содержимого ячейки внутри клетки.Это исключение является чем-то вроде причуды - этого действительно не должно существовать. Дизайнеры CSS разместили его там, чтобы позволить CSS воспроизводить атрибут таблицы, который обычно использовался дизайнерами в темные дни табличных макетов.
Для других элементов, выравнивание содержимого коробки вертикально посередине, это может быть немного изобразительного искусства. Есть несколько способов:
Для отдельных строк текста, просто сделать
line-height
такой же, как высота всей коробки. Для этого вам, вероятно, даже не понадобитсяvertical-align
.Используйте
display:table-cell;
, чтобы элемент имитировал ячейку таблицы, а затем используйтеvertical-align
. Это работает, но может иметь непреднамеренные последствия (есть другие атрибуты ячеек таблицы, которые вы, возможно, не захотите имитировать).Если вы знаете высоту элемента, который вы хотите вертикального выравнивания, вы можете поместить его на 50% минус половину своей высоты, как это:
Есть несколько других, но они должны вас начать.
Надеюсь, что это поможет.
источник
2011-01-24 19:06:49 Spudley
Javascript, вероятно, будет лучше всего получить изображение с центром в вертикальном центре для каждого случая. если вы можете использовать библиотеку jQuery, это всего лишь несколько строк кода.
});
источник
2011-01-24 19:12:23 heymrcarter
Значит, ему нужно включить полную библиотеку jQuery, плюс этот скрипт? Кажется, немного переборщил, чтобы что-то сосредоточить. – Jason
, если ему нужно сосредоточиться на чем-то более чем несколько раз, и если он не знает A), какова высота родительского div, а B) какова высота изображения, это будет работать каждый раз и в каждом case – heymrcarter
Для более современного (IE8 +) решения, которое не использует таблицы, мне нравится this one.
источник
2013-03-08 22:38:07 Justin
Лучшее решение, так как ему не нужно знать высоту содержимого и не использовать css-таблицы. Спасибо, что поделился! – Sygmoral
+1 Умный трюк! Это должен быть принятый ответ ИМО. – Passerby
есть способ сделать это, имея процентную ширину (на самом деле это 100%). –
Довольно cool and modern approach (с заданной высоты):
источник
2013-09-08 22:45:11 Agat
Я использую дисплей: свойство коробки:
ВИДЕТЬ JS-скрипку здесь: verical align js-fiddle
источник
2014-11-03 10:13:38 Ruwen
Используйте свойство translate, это просто и работает даже в IE:
источник
2015-02-05 22:50:09 yulie
Очень красивый и короткий путь! Благодаря! –
Смежные вопросы