Как отцентрировать контент в блоке по вертикалиОпубликовано: 06.02.2013 01:47 Автор: Ogri Просмотров: 6583
На первый взгляд может показаться, что решение вынесенной в заголовок задачи тривиально: устанавливаем CSS-атрибут vertical-align:middle
- и все дела. Но не так все просто. Принцип компоновки элементов традиционно основан на масштабировании по ширине, в высоту же содержимое растягивается или сжимается в соответствии с шириной. vertical-align
удобно использовать в таблицах для центрирования содержимого ячеек, равно как и в блоках DIV с атрибутом display:table-cell
. Ожидаемого поведения при вертикальном центрировании контента можно также достичь для элементов нормального потока страницы - блоков с атрибутом display:inline-block
. Во всех же прочих случаях этот подход неприменим, поскольку большинство современных браузеров просто использует значение атрибута vertical-align
для наследования дочерними inline-элементами блока. Здесь потребуется другая методика, описанию которой и посвящена эта статья.
Сразу оговорюсь: использование этой техники подразумевает два предположения:
- Вы можете определить фиксированную высоту внутреннего блока.
- Можно присвоить внутреннему блоку абсолютное позиционирование. Как правило, это не проблема, поскольку контейнер может оставаться в общем потоке.
Если эти условия соблюдены, делаем следующее:
- В стиле контейнера определяем атрибут
position
какrelative
илиabsolute
. - Задаем фиксированную высоту дочернего блока.
- Устанавливаем в стиле дочернего блока
position:absolute
иtop:50%
, совместив тем самым его верхнюю границу с серединой родительского блока. - Присваиваем атрибуту
margin-top
дочернего блока значение, равное половине его высоты, что сдвинет дочерний блок вверх до совпадения его середины с серединой контейнера.
Пример:
<div style="position: relative;">
Контейнер
<div style="position:absolute; top:50%; height:8em; margin-top:-4em;">
Отцентрированный по вертикали дочерний блок
</div>
</div>
Вот как это выглядит в браузере:
Пример практического использования данного метода при вписывании имиджа в контейнер вы можете найти в следующей статье.
Новые
-
20.07.2020 00:53
Joomla 3: Перенаправление на ту же страницу после авторизации -
13.02.2017 14:09
Joomla: как добавить свои языковые константы или переопределить существующие -
13.02.2017 13:23
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
23.06.2016 10:48
Единая фильтрация вывода модуля mod_jcomments_latest -
13.09.2015 13:06
Постим иллюстрированные статьи Joomla-сайта на Facebook, используя OG-теги
Популярные
-
94168
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
60856
Редактирование анимированных GIF-имиджей в Photoshop CS3 -
53839
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
34149
Joomla: как добавить свои языковые константы или переопределить существующие -
33729
Единая фильтрация вывода модуля mod_jcomments_latest
Авторизация
Гитара
Гостевая колонка
Последние комментарии
-
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments
-
אתר הבית 24.03.2023 16:59
-
업소알바 24.03.2023 16:31
And, be positive to check out the job tools for local positions and a salary estimator. Here is my ...
-
www.vespermov.com 24.03.2023 15:40
You have made some decent points there. I looked on the net for more info about the issue and found most ...
-
Sc686.net 24.03.2023 15:12
Thanks for every other informative web site. Where else may I am getting that type of info written ...
-
-
Joomla: Какую версию выбрать?
-
Henry 24.03.2023 16:47
%% My web-site - portfolio (Henry: https://www.punterforum.it/profile.php?id=98397)
-
groups 24.03.2023 16:42
%% my blog post - groups: http://ttlink.com/annieyoul0
-
how to Fit a Window 24.03.2023 16:03
%% my web blog - how to Fit a Window ...
-
Ghost Security 24.03.2023 15:56
%% my blog: Ghost Security: http://bbs33.cn/home.php?mod=space&uid=815741
-
-
Структура внутренних ссылок сайта на Joomla
-
Jeramy 24.03.2023 16:41
%% Here is my web blog - portfolios (Jeramy ...
-
Shad 24.03.2023 16:38
%% Here is my web page: vinyl fence installation cost (Shad ...
-
Подробнее...