2015-08-30 2 views
0

Я сделал «стрелку» с div слева от другого (справа) div. Оба находятся внутри контейнера div. Я пытаюсь привести его в середине родителя (таким образом, оставаясь выровнен в середине правых дел) сВыровнять левый div по вертикали в середине справа div

top: 50%; 

... Но это не выравнивая точно в середине. Его можно установить с помощью «margin-top», но я не хочу фиксированного значения.

Вот JSFiddle: http://jsfiddle.net/qhofmgbb/

ответ

1

попробовать

top: calc(50% - 4px) 

4px собой половину стрелки DIV диагонали, делится на 2. SQRT (6 * 2 + 6 * 2)/2.

Пояснение: Стрелка div повернута, диагональ - 8,48 px. Вы должны вычесть половину этого значения для середины высоты div контейнера, чтобы найти координату y относительно вершины, чтобы она была центрирована. Однако это не работает в старых браузерах.

+0

Итак, вы говорите, что div msgBoxArrow добавляет размер родительского div? Если абсолютное позиционирование не должно быть удалено, поток и родительский div будут высотой div msgBoxText? – Dillinger

+1

верх: 50% означает, что верхняя часть вашего элемента будет расположена на 50%. Вам нужно, чтобы середина вашего элемента была размещена на 50%. – Yair

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