2012-04-21 3 views
0

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

То, что я пытаюсь сделать, - это центр div по вертикали, который я знаю, как делать с css. Проблема в том, что высота слишком мала, она все равно будет центрировать ее и отрезать сверху и снизу.

Вот демо, что я имею в виду: http://jsfiddle.net/reitermarkus/23B43/
Полноэкранный демо: http://fiddle.jshell.net/reitermarkus/23B43/show/light/

Можете ли вы сказать мне, как выровнять его вверх, если высота слишком мала? Предпочтительно без JS.

Спасибо,
Маркус

+0

Единственный способ, которым вы могли бы определить, является ли высота ниже минимальной, требуется через JS. – trickyzter

+0

Я узнал, что он работает с CSS-запросами с использованием max-height. – reitermarkus

ответ

0

Единственный способ вы могли бы определить, является ли высота ниже требуемого минимума через JS:

var el = document.getElementById('id'); 
    var el_height = el.offsetHeight; 

    if(el_height < min_height){ 
    //apply class or inline style 
    el.className = 'align_top'; 
    } 

Очевидно, что вам нужно определить min_height вар , Кроме того, для DOM-манипуляции было бы лучше использовать jQuery. Выравнивание элемента в верхней части документа было бы просто удалением отрицательного поля и определение 'top' как 0;

+0

Здравствуйте, спасибо за ваш ответ, но на самом деле есть способ сделать это без JS. Я не знал, что вы можете использовать медиа-запросы с max-height, но он отлично работает. – reitermarkus

+0

Ах, извините, я думал, что вы имели в виду высоту div, а не видовое окно браузера. Кроме того, стоит упомянуть, что медиа-запросы поддерживаются только в современных браузерах, вам все равно придется использовать JS для обратной совместимости. – trickyzter

Смежные вопросы