Как сделать див по центру

Выравнивание слоя по центру

Основное отличие веб-страницы от листа бумаги заключается в их размерах. Если лист имеет заданную фиксированную ширину и высоту, то по отношению к веб-сайту такого сказать нельзя. Веб-документ отображается в окне браузера и может изменять свои размеры в зависимости от настроек операционной системы, типа монитора, установленного разрешения и т.д. Использование выравнивания позволяет проигнорировать указанную особенность и располагать элемент у края окна или по его центру.

Когда речь идет об использовании слоев, то для выравнивания в нашем распоряжении имеется несколько способов — с помощью отступов, через позиционирование, а также используя атрибут align тега

Использование отступов

Пример 1. Использование margin-left

Как вариант, можно не указывать ширину, а регулировать ее с помощью отступа слева и справа (пример 2).

Пример 2. Использование отступов

Следующий способ более универсален и уже не зависит от того, какие единицы измерения используются для установки ширины. Для этого требуется задать отступ слева и справа для слоя равным auto через стилевые свойства margin-left и margin-right или универсальное свойство margin (пример 3).

Пример 3. Применение значения auto

Атрибут align тега

Еще один способ размещения по центру вообще не требует использования никаких стилей и связан с атрибутом align тега

Пример 4. Атрибут align

Абсолютное позиционирование слоя

При абсолютном позиционировании координаты слоя вычисляются относительно левого верхнего угла окна родительского элемента или браузера, если родителя нет. Слой, заданный с абсолютным позиционированием, может располагаться под основным текстом или, наоборот, поверх него. Положение определяется с помощью стилевого свойства z-index и позволяет гибко управлять положением слоя по условной z-оси. Таким способом удобно выводить на веб-странице различные подсказки, всплывающие окна, рекламу или плавающие меню.

Так как координаты слоя определяются от его левого верхнего угла, для точного выравнивания следует добавить свойства margin-left и margin-top с отрицательными значениями. Их величина должна быть равна половине ширины слоя (для margin-left ) и высоты (для margin-top ).

Пример 5. Ширина слоя в пикселах

Пример 6. Ширина слоя в процентах

Ширина и высота слоя напрямую связана с отступами слева и сверху, если требуется установить значение одного из параметров в процентах, соответственно, поменяется и запись другого параметра. Как показано в данном примере, ширина слоя установлена в 40%, следовательно, и для свойства margin-left также надо применить проценты, в данном случае, 20%.

Указанная особенность позволяет применять любые единицы измерения, а не ограничиваться только одной формой записи, что делает код подходящим практически для всех случаев.

Источник

Выравнивание по центру блока внутри блока

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

На этом уроке, вы узнаете несколько способов выравнивания по центру блока внутри блока по вертикали и горизонтали. В качестве блоков могут быть любые фигуры.

В нашем примере, мы будем центрировать картинку (блочный элемент) внутри прямоугольника. Для демонстрации выравнивания по центру несколькими способами, мы создадим три прямоугольника, с картинками внутри.

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

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Общие стили для всех способов:

Зададим позицию блока относительной по отношению к окну браузера. Это в дальнейшем даст возможность блоку-дочке задать абсолютное позиционирование уже к блоку-родителю.

.block <
width: 250px;
height: 300px;
background-color: red;
position: relative;

Исходные размеры картинки-иконки такие же, как и ширина красного прямоугольника, уменьшим её максимальные размеры.

.icon <
max-width: 60%;
max-height: 60%;
>

HTML-разметка у всех способов одинаковая, отличаться будут только стили.

Способ первый

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Положение изображения автоматически определяет сам браузер с помощью свойства margin: auto.

.first <
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
margin: auto;
>

Способ второй

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Этот способ выравнивания по центру никогда еще не подводил. Вы спросите, зачем нужно последнее свойство transform? Если убрать transform, то иконка не будет стоять точно по центру, поскольку не учитываются её собственные размеры. Центр иконки не совпадает с центром блока-родителя. Мы двигаем иконку назад и вниз на половину её собственного размера.

Способ третий

Отличается от двух предыдущих тем, что класс flex задан блоку div, а не картинке.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

.flex <
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
>

А что будет, если после тега img, всем трем блокам добавить текст?

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Ольга Смирнова

Консультант по кредитам

У первых двух способов, параграфы с текстом окажутся наверху, несмотря на то, что в HTML-коде, они стоят после изображения. Для перемещения текста под картинку, потребуется обернуть теги img, h2 и p в ещё один блок div и прописать ему свойство text-align: center.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Однако с третьим способом выравнивания на флексах, не возникает таких проблем, конструкция не нуждается в дополнительном оберточном блоке. Параграфы с текстом встают точно посередине и после изображения и там где надо.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Заключение

Лишний раз можно убедиться в продвинутости и удобстве верстки на флексах. Советую всем тем верстальщикам, кто еще не верстает на флексах, наконец-то начать использовать флексы. Оправдание, почему вы не верстаете на флексах, может быть только одно – экзотическое желание заказчика, угодить пользователям «древних» браузеров. В остальных же случаях, нет ни одной причины почему не нужно верстать на флексах.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 0 ):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

В CSS выровнять текст по центру (по горизонтали и по вертикали) внутри div блок

мне нужно, чтобы текст был выровнен по центру как по вертикали, так и по горизонтали.

24 ответов

если это одна строка текста и/или изображения, то это легко сделать. Просто используйте

вот и все. Если это может быть несколько строк, то это несколько сложнее. Но есть решения на http://pmob.co.uk/ ищите «вертикальное выравнивание».

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

обновление для 2016 / 2017:

для сжатия оберните ширину:

вышеуказанное решение использовать фиксированную ширину для области содержимого. Чтобы использовать ширину термоусадочной пленки, используйте

я попробовал flexbox, но он не был так широко поддерживается, как это было бы сломать в некоторых старых версиях IE, таких как IE10.

общие методы по состоянию на 2014 год:

на поддерживаемые браузеры (большинство из них), вы можете использовать top: 50% / left: 50% в сочетании с translateX(-50%) translateY(-50%) динамически вертикально / горизонтально центрировать элемент.

на поддерживаемые браузеры, выберите display целевого элемента в flex и использовать align-items: center для вертикального центрирования и justify-content: center для горизонтального центрирования. Просто не забудьте добавить префиксы поставщиков для дополнительных поддержка браузера (пример).

для горизонтального центрирования вы можете добавить text-align: center центрировать текст и любой другой inline дочерними элементами. Кроме того, вы можете использовать margin: 0 auto предполагая, что элемент

использование flexbox / CSS:

добавить строку display: table-cell; к вашему css для этого div. только ячейки таблицы поддерживают вертикальное выравнивание: середина; но вы можете дать это определение [table-cell] div..

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

вы можете попробовать очень простой код для этого

дайте этот класс css целевому

подход 1

подход 2

подход 3

один из лучших подходов-использовать свойство flex в Родительском div и добавить margin:auto свойство элемент tag

это работает для меня (протестировано ok!)

вы можете выбрать другие значения, а затем 50% fi. 25% к центру на 25% родителя

регулировка высоты линии для получения вертикального выравнивания.

Это должен быть правильный ответ. Самый чистый и простой:

Вы можете попробовать следующие методы:

1. если у вас есть одно слово или одно предложение строки, то следующий код может сделать трюк.

имейте текст внутри тега div и дайте ему идентификатор. Определите следующие свойства для этого id.

Примечание: убедитесь, что свойство line-height совпадает с высотой деления.

но, если содержание больше чем одно слово или строчка, и это не сработает. Кроме того, будут случаи, когда вы не сможете указать размер divison в px или %.(когда divison действительно маленький, и вы хотите, чтобы контент был точно посередине)

2. чтобы решить эту проблему, мы можем попробовать следующую комбинацию свойств.

эти 3 строки кода устанавливают содержимое точно в середине деления (независимо от размер дисплея). The «align-items: center» помогает в вертикальном центрировании в то время как «оправдать-содержание: центр» будет делать это по горизонтали.

Примечание: Flex не работает во всех браузерах. Убедитесь, что добавлены соответствующие префиксы поставщиков для дополнительной поддержки браузера.

Источник

Выравнивание по центру в CSS

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Давайте выстроим все возможные решения в виде древовидной схемы и будем надеяться, что это упростит нашу задачу.

Итак, мне нужно выравнять элемент по центру.

Горизонтальное выравнивание

Выравнивание по центру строкового или строково-* элемента

Выравнивать по центру строковые элементы внутри блочного родительского элемента можно достаточно просто:

See the Pen Centering Inline Elements by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание по центру блочного элемента

Выравнять по центру блочный элемент вы можете установив свойствам margin-left и margin-right значение auto (у него также должна быть задана ширина, иначе элемент просто займёт всю ширину контента и не будет необходимости в выравнивании). Чаще всего это делается с помощью сокращённого свойства, вот так:

See the Pen Centering Single Block Level Element by Chris Coyier (@chriscoyier) on CodePen.

Это будет работать независимо от того какая ширина установленная у блочного элемента или его родителя.

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

Выравнивание по центру нескольких блочных элементов

Если есть два или более блочных элементов, которые вам нужно выравнять горизонтально по центру в пределах одной строки, то возможно вам лучше изменить их тип отображения. Ниже приведён пример изменения их типа отображения на inline-block и пример с Flexbox:

See the Pen Centering Row of Blocks by Chris Coyier (@chriscoyier) on CodePen.

Если эти несколько блоков расположены на разных строках, то техника с автоматическими отступами по прежнему прекрасна:

See the Pen Centering Blocks on Top of Each Other by Chris Coyier (@chriscoyier) on CodePen.

Вертикальное выравнивание

Вертикальное выравнивание по центру в CSS немного сложнее.

Выравнивание по центру строкового или строково-* элемента

Выравнивание элемента с одной строкой

See the Pen Centering text (kinda) with Padding by Chris Coyier (@chriscoyier) on CodePen.

See the Pen Centering a line with line-height by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание многострочного элемента

Одинаковые отступы сверху и снизу могут создать эффект выравнивания по центру и для многострочных элементов, но если это не сработает, то возможно что элемент в котором находится текст является ячейкой таблицы, либо такое его поведение явно задано со помощью CSS. В данном свойство vertical-align обрабатывает это, в отличии от того что оно обычно обрабатывает выравнивание элементов внутри строки.

See the Pen Centering text (kinda) with Padding by Chris Coyier (@chriscoyier) on CodePen.

See the Pen Vertical Center Multi Lines of Text with Flexbox by Chris Coyier (@chriscoyier) on CodePen.

Если обе техники приведённые выше нельзя применить, вы можете использовать технику «призрачного элемента», в которой псевдоэлемент с высотой в 100% размещается внутри контейнера и тех выравнивается вертикально по центру него.

See the Pen Ghost Centering Multi Line Text by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание по центру блочного элемента

Выравнивание элемента с известной высотой

Довольно часто мы не можем знать высоту, по многим причинам: если изменяется ширина, текст может форматироваться и изменять высоту. Разная стилизация текста может изменять высоту. Разный размер шрифта может изменить высоту. Элементы с фиксированным соотношением сторон, такие как изображения, могут изменять высоту при изменении собственных размеров и т.д.

Но если вы знаете высоту элемента, то можете выравнивать по центру вот так:

See the Pen Center Block with Fixed Height by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание элемента с неизвестной высотой

Даже если вы не знаете высоту элемента, его всё ещё можно протолкнуть на 50% высоты его родителя, а после поднять на 50% его собственной высоты:

See the Pen Center Block with Unknown Height by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание элемента с помощью Flexbox

Небольшой сюрприз, это можно очень просто сделать с помощью Flexbox.

See the Pen Center Block with Unknown Height with Flexbox by Chris Coyier (@chriscoyier) on CodePen.

Горизонтальное и вертикальное выравнивание

Вы можете комбинировать представленные выше техники для того чтобы получить идеально выравненные по центру элементы. Но обычно их можно разделить на 4 группы:

Выравнивание элемента с фиксированной шириной и высотой

Использование отрицательных отступов ( maring ) равных половине этой ширины и высоты после абсолютного позиционирования элемента 50% / 50% выравняют элемент по центру. У этого способа достаточно хорошая кроссбраузерная поддержка:

See the Pen Center Block with Fixed Height and Width by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание элемента с неизвестной шириной и высотой

Если вы не знаете ширину или высоту элемента, то можете использовать свойство transform и отрицательный translate в 50% в обоих направлениях (в зависимости от текущей ширины / высоты элемента) до центра:

See the Pen Center Block with Unknown Height and Width by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание элемента с помощью Flexbox

Чтобы выровнять элемент по центру с помощью Flexbox вам нужно использовать два свойства центрирования:

See the Pen Center Block with Unknown Height and Width with Flexbox by Chris Coyier (@chriscoyier) on CodePen.

Выравнивание элемента с помощью CSS Grid

Это просто небольшой трюк (присланный Lance Janssen), который в большей степени будет работать для одного элемента:

See the Pen Centering with Grid by Chris Coyier (@chriscoyier) on CodePen.

Вывод

Теперь вы можете всё что угодно выравнять по центру в CSS.

Источник

Выравнивание текста по вертикали и по центру с помощью CSS.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Задача верстки, которая очень часто встречается – это выравнивание текста по вертикали в блоке div.

Если с выравниванием текста по горизонтали, проблем обычно не возникает (используем свойство text-align:center и все будет хорошо), то с выравниванием по вертикали все немного сложнее.

Есть одной свойство в CSS, которое называется vertical-align. Казалось бы, используя его можно решить все проблемы. Но не тут-то было.

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

Для блочных элементов свойство vertical-align не работает.

Есть два способа, как можно выйти из этой ситуации:

Для тех, кто предпочитает все смотреть в видео:

Для тех, кто любит текст, читайте ниже способ решения этой проблемы.

Способ А. Как одно из решений, можно разместить текст не в элементе div, а в ячейке таблицы.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Способ Б. Использовать своство display:table-cell;

Одна проблема, это свойство не поддерживают Internet Explorer 6-7 версии.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Ситуация 1. Выравнивание одной строки текста.

Рассмотрим простой пример.

Строка текста располагается по верхнему краю. Т.к. у нас всего одна строка текста, то для выравнивания можно воспользоваться самым простым способом: это добавление свойства line-height со значением равным высоте элемента div, в котором текст находится.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Этот способ хорошо работает, когда у вас всего одна строка с текстом.

Ситуация 2. Если известны точные значения ширины и высоты дочернего блока, где располагается сам текст.

Этот вариант решения предусматривает использование свойства position:absolute для дочернего блока, абсолютного его позиционирования относительно родительского блока с position:relative.

Как сделать див по центру. Смотреть фото Как сделать див по центру. Смотреть картинку Как сделать див по центру. Картинка про Как сделать див по центру. Фото Как сделать див по центру

Зная ширину и высоту блока, можно взять половину этой величины и задать ее отрицательными значениями для свойств margin-left и margin-top.

Если не нужна поддержка старых браузеров, этот вариант будет самым оптимальным.

Как видите, такая простая задача, как выравнивание текста по центру, оказалась не такой простой на практике.

Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:

Или зарегистрируйтесь через социальные сети:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *