Intereting Posts
Ручка с помощью javascript onkeydown Минимальное и максимальное значение Z-INDEX цикл через несколько URL-адресов в r с rvest JQuery 1.7 $ (this) .attr (‘type’) для select дает undefined вместо «select-one» – Почему? Перенаправление 10 секунд Обратный отсчет Почему мой код javascript не обрабатывает сверху вниз кодирование? Как сохранить происхождение в центре изображения в масштабной анимации? Internet explorer 9 не распознает doctype, отправленный сервлетом с сервера weblogic, и отображает в режиме документа IE7 – дополнительные символы перед запуском? jQuery / Javascript: автопопуляция динамически наseleniumных элементов Размешение всей веб-страницы Запуск JavaScript, загруженного с помощью XMLHttpRequest HTML / CSS – настройка размера шрифта для заполнения родительской высоты и ширины Как избежать добавления одного и того же шаблона навигатора на каждую страницу .html Как найти ширину внутренних элементов Обязательно в HTML-форме не работает

Как центрировать div вертикально внутри абсолютно позиционированного родительского div

Я пытаюсь получить синий контейнер в середине розового, однако кажется vertical-align: middle; в этом случае не выполняет работу.

 
test

Результат:

введите описание изображения здесь

Expectation:

введите описание изображения здесь

Пожалуйста, предложите, как я могу это достичь.

Jsfiddle

Прежде всего, обратите внимание, что vertical-align применимо только к ячейкам таблицы и элементам линейного уровня.

Существует несколько способов достижения вертикальных выравниваний, которые могут или не могут удовлетворить ваши потребности. Однако я покажу вам два метода из моих избранных:

1. Использование transform и top

 .valign { position: relative; top: 50%; transform: translateY(-50%); /* vendor prefixes omitted due to brevity */ } 
 
test

использовать это :

 .Absolute-Center { margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; } 

ссылку: https://www.smashingmagazine.com/2013/08/absolute-horizontal-vertical-centering-css/

Используйте flex blox в своем абзацевом расположении div, чтобы центрировать его содержимое.

См. Пример https://plnkr.co/edit/wJIX2NpbNhO34X68ZyoY?p=preview

 .some-absolute-div { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -moz-flex; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; -moz-justify-content: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; -webkit-align-items: center; -moz-align-items: center; align-items: center; } 

Центр вертикально и горизонтально:

 .parent{ height: 100%; position: absolute; width: 100%; top: 0; left: 0; } .c{ position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); } 

Вы можете использовать display:table / table-cell;

 .a{ position: absolute; left: 50px; top: 50px; display:table; } .b{ text-align: left; display:table-cell; height: 56px; vertical-align: middle; background-color: pink; } .c { background-color: lightblue; } 
 
test

Пожалуйста, проверьте этот ответ на аналогичную проблему.

Это, безусловно, самый простой способ, который я нашел.

https://stackoverflow.com/a/26079837/4593442

ЗАМЕТКА. Я использовал дисплей: -webkit-flex; вместо отображения: flex; для тестирования внутри safari.

СНОСКА. Я только начинающий, помогая кому-то, кто явно переживает.

Вот простой способ использования объекта Top.

например: если абсолютный размер элемента равен 60 пикселей.

 .absolute-element { position:absolute; height:60px; top: calc(50% - 60px); } 

Дополнительное простое решение

HTML:

 
Text

CSS:

 #d1{ position:absolute; top:100px;left:100px; } #d2{ border:1px solid black; height:50px; width:50px; display:table-cell; vertical-align:middle; text-align:center; } , #d1{ position:absolute; top:100px;left:100px; } #d2{ border:1px solid black; height:50px; width:50px; display:table-cell; vertical-align:middle; text-align:center; }