Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Выравнивание по центру по вертикали css: Центрирование горизонтальное и вертикальное

Содержание

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

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

Выравнивание текста по вертикали можно добиться по меньшей мере пятью разными способами. Каждый из них по-своему хорош, учитывая обстоятельства и детали ситуации. Мы рассмотрим несколько примеров, а вы исходя из условий, подберете себе подходящее ращение.

Первый метод с line-height

Первый способ очень банальный и с большим недостатком, что ограничивает его в применении. Но все же, как ни крути, он может пригодиться и даже принести нужный результат. Это будет условным выравниванием, так как, по сути, мы задаем высоту строки в соответствии с высотой блока, использовав свойство line-height .

первый пример. демо №1

Точно таким же способом возможно реализовать картинку по центру вертикали, но добавив одно новое свойство vertical-align: middle; .

Выравнивание со свойством position

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

Поэтому нужно задать отрицательное значение к внешним отступам. Размер отступа сверху должен соответствовать половине высоты внутреннего блока, а отступ слева — на половину ширины. Таким образом, получим абсолютный центр.

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

Выравнивание со свойством table

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

применять не будет, а воспользуемся свойствами CSS, такими как display: table; , display: table-cell; . В старых версиях IE данный способ не работает, да и не нужно. Ими, вообще, еще кто-то пользуется?

Выравнивание со свойством flex

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

Выравнивание со свойством transform

И последний в нашем списке, но далеко не последний в использовании способ. Сдвигаем по вертикали элемент на желаемое значение, в данном случае на -50%.

В CSS есть всего несколько техник центрирования элементов. Если их знать, то большинство задач решаются просто.

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

text-align

Для центрирования инлайновых элементов – достаточно поставить родителю text-align: center :

Для центрирования блока это уже не подойдёт, свойство просто не подействует. Например:

margin: auto

Блок по горизонтали центрируется margin: auto :

В отличие от width/height , значение auto для margin само не появляется. Обычно margin равно конкретной величине для элемента, например 0 для DIV . Нужно поставить его явно.

Значение margin-left:auto/margin-right:auto заставляет браузер выделять под margin всё доступное сбоку пространство. А если и то и другое auto , то слева и справа будет одинаковый отступ, таким образом элемент окажется в середине. Детали вычислений описаны в разделе спецификации Calculating widths and margins.

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

Для горизонтального центрирования всё просто. Вертикальное же изначально не было предусмотрено в спецификации CSS и по сей день вызывает ряд проблем.

Есть три основных решения.

position:absolute + margin

Центрируемый элемент позиционируем абсолютно и опускаем до середины по вертикали при помощи top:50% :

Это, конечно, не совсем центр. По центру находится верхняя граница. Нужно ещё приподнять элемент на половину своей высоты.

Высота центрируемого элемента должна быть известна. Родитель может иметь любую высоту.

Если мы знаем, что это ровно одна строка, то её высота равна line-height .

Приподнимем элемент на пол-высоты при помощи margin-top :

При стандартных настройках браузера высота строки line-height: 1.25 , если поделить на два 1.25em / 2 = 0.625em .

Конечно, высота может быть и другой, главное чтобы мы её знали заранее.

Можно аналогично центрировать и по горизонтали, если известен горизонтальный размер, при помощи left:50% и отрицательного margin-left .

Одна строка: line-height

Вертикально отцентрировать одну строку в элементе с известной высотой height можно, указав эту высоту в свойстве line-height :

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

Таблица с vertical-align

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

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

Его возможные значения:

baseline Значение по умолчанию. middle , top , bottom Располагать содержимое посередине, вверху, внизу ячейки.

Например, ниже есть таблица со всеми 3-мя значениями:

Обратим внимание, что в ячейке с vertical-align: middle содержимое находится по центру. Таким образом, можно обернуть нужный элемент в таблицу размера width:100%;height:100% с одной ячейкой, у которой указать vertical-align:middle , и он будет отцентрирован.

Но мы рассмотрим более красивый способ, который поддерживается во всех современных браузерах, и в IE8+. В них не обязательно делать таблицу, так как доступно значение display:table-cell . Для элемента с таким display используются те же алгоритмы вычисления ширины и центрирования, что и в TD . И, в том числе, работает vertical-align :

Этот способ замечателен тем, что он не требует знания высоты элементов.

Однако у него есть особенность. Вместе с vertical-align родительский блок получает табличный алгоритм вычисления ширины и начинает подстраиваться под содержимое. Это не всегда желательно.

Чтобы его растянуть, нужно указать width явно, например: 300px :

Можно и в процентах, но в примере выше они не сработают, потому что структура таблицы «сломана» – ячейка есть, а собственно таблицы-то нет.

Это можно починить, завернув «псевдоячейку» в элемент с display:table , которому и поставим ширину:

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

Центрирование в строке с vertical-align

Для инлайновых элементов ( display:inline/inline-block ), включая картинки, свойство vertical-align центрирует сам инлайн-элемент в окружающем его тексте.

В этом случае набор значений несколько другой:

Это можно использовать и для центрирования, если высота родителя известна, а центрируемого элемента – нет.

Допустим, высота внешнего элемента 120px . Укажем её в свойстве line-height :

Работает во всех браузерах и IE8+.

Свойство line-height наследуется, поэтому надо знать «правильную» высоту строки и переопределять её для inner .

Центрирование с vertical-align без таблиц

Если центрирование должно работать для любой высоты родителя и центрируемого элемента, то обычно используют таблицы или display:table-cell с vertical-align .

Если центрируются не-блочные элементы, например inline или inline-block , то vertical-align может решить задачу без всяких таблиц. Правда, понадобится вспомогательный элемент (можно через :before ).

  • Перед центрируемым элементом помещается вспомогательный инлайн-блок before , занимающий всю возможную высоту.
  • Центрируемый блок выровнен по его середине.

Для всех современных браузеров и IE8 можно добавить вспомогательный элемент через :before :

В пример выше добавлено также горизонтальное центрирование text-align: center . Но вы можете видеть, что на самом деле внутренний элемент не центрирован горизонтально, он немного сдвинут вправо.

Это происходит потому, что центрируется весь текст, а перед inner находится пробел, который занимает место.

    Убрать лишний пробел между div и началом inner , будет

Центрирование с использованием модели flexbox

Данный метод поддерживается всеми современными браузерами.

  • Не требуется знания высоты центрируемого элемента.
  • CSS чистый, короткий и не требует дополнительных элементов.
  • Не поддерживается IE9-, IE10 поддерживает предыдущую версию flexbox.

Итого

Обобщим решения, которые обсуждались в этой статье.

Для горизонтального центрирования:

  • text-align: center – центрирует инлайн-элементы в блоке.
  • margin: 0 auto – центрирует блок внутри родителя. У блока должна быть указана ширина.

Для вертикального центрирования одного блока внутри другого:

Если размер центрируемого элемента известен, а родителя – нет

Родителю position:relative , потомку position:absolute; top:50% и margin-top:- . Аналогично можно отцентрировать и по горизонтали.

Если нужно отцентрировать одну строку в блоке, высота которого известна

Поставить блоку line-height: . Нужны конкретные единицы высоты ( px , em …). Значение line-height:100% не будет работать, т.к. проценты берутся не от высоты блока, а от текущей line-height .

Высота родителя известна, а центрируемого элемента – нет.

Поставить line-height родителю во всю его высоту, а потомку поставить display:inline-block .

Высота обоих элементов неизвестна.

  1. Сделать элемент-родитель ячейкой таблицы при помощи display:table-cell (IE8) или реальной таблицы, и поставить ему vertical-align:middle . Отлично работает, но мы имеем дело с таблицей вместо обычного блока.
  1. Решение со вспомогательным элементом outer:before и инлайн-блоками. Вполне универсально и не создаёт таблицу.
  2. Решение с использованием flexbox.

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

Вертикальное выравнивание по центру с помощью CSS достигается не так просто. Существует множество способов и не все работают во всех броузерах. Давайте рассмотрим 5 различных методов, а также «за» и «против» каждого из них. Пример.

1-ый способ

Этот метод предполагает, что мы устанавливаем некоторому элементу

Плюсы

  • Контент может динамически изменять высоту (высота не определена в CSS).
  • Контент не обрезается в случае, если для него недостаточно места.

Минусы

  • Не работает в IE 7 и меньше
  • Много вложенных тэгов

2-ой метод

Этот метод использует абсолютное позиционирование div-а, которому top устанавливается в 50%, а верхний отступ (margin-top) минус половине высоты контента. Это подразумевает, что объект должен иметь фиксированную высоту, которая определена в стилях CSS.

Поскольку высота фиксированная, вы можете установить overflow:auto; для div-а содержащего контент, таким образом, в случае если контент не будет влазить, то появятся скролл-бары.

Плюсы

  • Работает во всех броузерах.
  • Нет лишней вложенности.

Минусы

  • Когда не достаточно места, контент пропадает (например, div находится внутри body, а пользователь уменьшил окна, в этом случае скролл-бары не появятся.

3-ий метод

В этом методе, мы обернём div с контентом другим div-ом. Установим ему высоту в 50% (height: 50%;), а нижний отступ половине высоты (margin-bottom:-contentheight;). Контент будет очищать float и выводиться по центру.

Плюсы

  • Работает во всех броузерах.
  • Когда недостаточно места (например, когда уменьшено окно) контент не обрезается, появятся скроллбары.

Минусы

  • Думаю только один: что используется лишний пустой элемент.

4-ый метод.

Этот метод использует свойство position:absolute; для div-а с фиксированными размерами (шириной и высотой). Затем устанавливаем ему координаты top:0; bottom:0;, но поскольку у него фиксированная высота, то он не может растянуться и выравнивается по центру. Это очень похоже на общеизвестный метод горизонтального выравнивания по центру блочного элемента фиксированной ширины (margin: 0 auto;).

Плюсы

Минусы

  • Не работает в Internet Explorer
  • Контент будет обрезаться без скролл-баров, если не хватает места в контейнере.

5-ый метод

С помощью этого метода можно выровнять по центру одну строку текста. Просто устанавливаем высоту текста (line-height) равной высоте элемента (height). После этого строка будет выведена по центру.

Плюсы

  • Работает во всех броузерах.
  • Не обрезает текст, если он не влез.

Минусы

  • Работает только с текстом (не работает с блочными элементами).
  • Если текста больше чем одна строка, то выглядит очень плохо.

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

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

Шаг 1

Всегда хорошо начинать с семантической разметки. Наша страница будет структурирована следующим образом:

  • #floater (чтобы выровнять контент по центру)
  • #centred (центральный элемент)
  • #content
  • #bottom (для копирайтов и всего такого)
  • Напишем следующую html-разметку:

    Шаг 2

    Сейчас мы напишем простейший CSS, для размещения элементов на странице. Вы должны сохранить этот код в файле style.css. Именно на него прописана ссылка в html-файле.

    Перед тем как сделать наш контент выровненным по центру, необходимо для body и html установить высоту 100%. Так как высота считается без внутренних и внешних отступов (padding и margin), то мы устанавливаем их (отступы) в 0, чтобы не было скроллбаров.

    Нижний отступ для элемента «floater»-а равен минус половине высоты контента (400px), а именно -200px;

    Сейчас ваша страничка должна выглядеть приблизительно так:

    Ширина элемента #centered 80%. Это делает наш сайт уже на маленьких экранах и шире на больших. большинство сайтов выглядит неприлично на новых широких мониторах в верхнем левом углу. Свойства min-width и max-width также ограничивают нашу страничку, чтобы она не выглядела слишком широкой или слишком узкой. Internet Explorer не поддерживает эти свойства. Для него надо установить фиксированную ширину.

    Поскольку элементу #centered установлено position:relative, мы можем использовать абсолютное позиционирование элементов внутри него. Затем установим overflow:auto; для элемента #content, чтобы появлялись скроллбары, в случае если не будет помещаться контент.

    Шаг 3

    И последнее что мы сделаем, это добавим кое-какие стили, чтобы страничка выглядела немного привлекательнее. Давайте начнём с меню.

    Первое что мы сделали, чтобы меню выглядело лучше, удалили маркеры, установив атрибут list-style:none, а также установили внутренние и внешние отступы, так как по умолчанию в разных броузерах они сильно различаются.

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

    Другая интересная вещь, которую мы использовали для меню – это псевдо-классы :before и :after. Они позволяют вам добавить что-нибудь перед и после элемента. Это хороший способ добавлять иконки или символы, такие как стрелочка в конце каждой ссылки. Такой трюк не работает в Internet Explorer 7 и ниже.

    Шаг 4

    Ну и самое последнее, мы добавим в наш дизайн кое-какие втили для ещё большей красоты.

    В этих стилях мы устанавливаем закруглённые углы для элемента #centered. В CSS3, за это будет отвечать свойство border-radius. Это пока что не реализовано некоторыми броузерами, разве только использовать приставки -moz и -webkit для Mozilla Firefox и Safari/Webkit.

    Совместимость

    Как вы уже наверное предположили, основной источник проблем совместимости – Internet Explorer:

    • Элементу #floater обязательно надо установить ширину
    • В IE 6 лишние отступы вокруг меню

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

    Автор admin На чтение 2 мин.

    Свойство CSS vertical-align отвечает за вертикальное выравнивание текста, картинок на странице. Важной особенностью является то, что он работает только с элементами таблицы, inline и inline-block элементами. Поддерживается всеми современными браузерами.

    Синтаксис CSS vertical-align

    Где value может принимать следующие значения:

    • baseline — выравнивание по базовой линии предка (или просто нижняя граница родителя)
    • bottom — выравнивание по нижней части строки (или элемента, который располагается ниже всех)
    • middle — выравнивание средней точки элемента по базовой линии родителя плюс половина высоты родительского элемента
    • sub — отображение происходит под строкой (выглядит как подстрочный индекс)
    • super — отображение происходит над строкой (как верхний индекс)
    • text-bottom — выравнивание нижней границы элемента по нижнему краю строки
    • text-top — выравнивание верхняя границы элемента по верхнему краю строки
    • top — выравнивание верхняя края элемента по верху самого высокого элемента строки
    • inherit — наследует значение родителя
    • значение — указывается в пикселях. Положительное число смещает вверх относительно базовой линии. Отрицательное вниз
    • проценты — указывается в процетах. Положительное число смещает вверх относительно базовой линии. Отрицательное вниз

    Значение vertical-align по умолчанию:

    • baseline (для строчных элементов)
    • middle (для ячеек таблицы)

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

    Чаще всего vertical-align используется в ячейках таблиц. В теге используют атрибут valign .

    Синтаксис CSS valign для таблиц

    Где value может принимать следующие значения:

    • baseline — выравнивание по базовой линии первой текстовой строки
    • bottom — выравнивание по нижнему краю ячейки таблицы
    • middle — выравнивание по середине ячейки
    • top — выравнивание верхнему краю ячейки

    Преобразуется на странице в следующее:

    Выравнивание по верху
    Выравнивание по низу

    Примеры с вертикальными выравниваниями

    Пример 1. Значения vertical-align: baseline, bottom, top, sub

    Пример 2. Значения vertical-align: абсолютные значения и проценты

    Ниже представлены примеры вертикального выравнивания с абсолютным значением и процентами.

    Преобразуется на странице в следующее:

    Исходная строка. Текст с выравниванием на 10 пикселей вверх
    Исходная строка. Текст с выравниванием на 5 пикселей вниз
    Исходная строка. Текст с выравниванием на 50% вверх
    Исходная строка. Текст с выравниванием на 30% вниз

    Значение vertical-align: middle не выравнивает строчный элемент по центру самого большого элемента в строке (что можно было бы ожидать). Вместо этого значение middle выравнивает элемент относительно гипотетичной строчной буквы «X» (также называемой x-высотой).

    Для обращения к vertical-align из JavaScript нужно писать следующую конструкцию:

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

    Центрирование по вертикали

    Одним из способов показать посетителю направленность и название сайта является использование сплэш-страницы. Это первая страница, на которой, как правило, расположена flash-заставка или рисунок, выражающий главную идею сайта. Изображение также является и ссылкой на остальные разделы сайта. Требуется поместить этот рисунок по центру окна браузера вне зависимости от разрешения монитора. Для этой цели можно воспользоваться таблицей с шириной и высотой равной 100% (пример 1).

    Пример 1. Центрирование рисунка

    В данном примере выравнивание по горизонтали устанавливается с помощью параметра align=»center» тега

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

    Чтобы высота таблицы устанавливалась как 100%, необходимо убрать , код при этом перестает быть валидным.

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

    Выравнивание по горизонтали

    За счет сочетания атрибутов align (горизонтальное выравнивание) и valign (вертикальное выравнивание) тега

    , допустимо устанавливать несколько видов положений элементов относительно друг друга. На рис. 1 показаны способы выравнивания элементов по горизонтали.

    Рис. 1. Выравнивание элементов по горизонтали

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

    Выравнивание по верхнему краю

    Для указания выравнивания содержимого ячеек по верхнему краю, для тега

    требуется установить атрибут valign со значением top (пример 2).

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

    В данном примере характеристики ячеек управляются с помощью параметров тега

    , но тоже удобнее изменять через стили. В частности, выравнивание в ячейках указывается свойствами vertical-align и text-align (пример 3).

    Пример 3. Применение стилей для выравнивания

    Для сокращения кода в данном примере используется группирование селекторов, поскольку свойства vertical-align и padding применяются одновременно к двум ячейкам.

    Выравнивание по нижнему краю делается аналогично, только вместо значения top используется bottom .

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

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

    Рис. 2. Добавление формулы в документ

    В подобном случае формула располагается строго по центру окна браузера, а ее номер — по правому краю. Для такого размещения элементов понадобится таблица с тремя ячейками. Крайние ячейки должны иметь одинаковые размеры, в средней ячейке выравнивание делается по центру, а в правой — по правому краю (пример 4). Такое количество ячеек требуется для того, чтобы обеспечить позиционирование формулы по центру.

    Пример 4. Выравнивание формулы

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

    Выравнивание элементов формы

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

    Рис 3. Расположение полей формы и текста

    Чтобы текст возле полей формы был выровнен по правому краю, а сами элементы формы — по левому, потребуется таблица с невидимой границей и двумя колонками. В левой колонке будет размещаться собственно текст, а в правой текстовые поля (пример 5).

    Пример 5. Выравнивание полей формы

    В данном примере, для тех ячеек, где требуется задать выравнивание по правому краю, добавлен атрибут align=»right» . Чтобы надпись «Комментарий» располагалась по верхней границе многострочного текста, для соответствующей ячейки устанавливается выравнивание по верхнему краю с помощью атрибута valign .

    Приветствую вас на сайте Impuls-Web!

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

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

    Навигация по статье:

    Свойство для вертикального выравнивания vertical-align

    Базовым свойством, которое позволяет сделать в CSS выравнивание по вертикали является vertical-align.

    В основном для выравнивания текста по вертикали css вам понадобятся значения top, middle, bottom. Они подходят для большинства случаев.

    Так, в случае если нам нужно выровнять текст в каком-то блоке, то для начала оборачиваем его в тег

    и задаем для него стиль vertical-align:middle;

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

    Для родительского элемента, то есть блока, в котором находится текст, мы задаем свойство display:table, а для абзаца с тексом – display:table-cell. В этом случае блок преобразуется в таблицу, а абзац в ячейку таблицы.

    css — Как выполнить выравнивание по центру по вертикали и горизонтали?

    Я использую prime ng 9.1.3 и primeflex 1.3.0. Я использую p-align-center. Но я не могу центрировать форму по вертикали и горизонтали. Я использую 100vh для полной высоты экрана.

    <div>
      <div> 
        <h3>Sample app</h3>
      </div>
    
      <div>
        <div>
          <form>
            <h5>LOGIN</h5>
    
            <!--Email Starts-->
    
            <span>
              <input type="email" size="50" pInputText />
              <label for="float-input">Email</label>
            </span>
    
            <!--Email Ends-->
    
            <div></div>
    
            <!--Password Starts-->
    
            <span>
              <input type="password" size="50" pInputText />
              <label for="float-input">Password</label>
            </span>
    
            <!--Password Ends-->
    
            <div></div>
    
            <p-button label="Login" styleClass="ui-button-success"></p-button>
          </form>
        </div>
      </div>
    </div>
    

    Это экран.

    0

    Dheepak S

    14 Сен 2020 в 18:13

    1 ответ

    Лучший ответ

    Вы можете попробовать создать второй столбец с помощью display:flex, а затем выровнять элементы внутри него:

    /* Of course, you need to use a different selector,
       since you don't want to apply these styles to all elements with this class */
    .p-col-6 {
     display: flex;
     justify-content: center;
     align-items: center;
    }
    

    1

    Dimitar Spassov
    15 Сен 2020 в 07:18

    Как выровнять изображение по центру в HTML: основы CSS для новичков

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

    Вообще, выравнивание текста или изображения по вертикали или горизонтали при помощи CSS — это довольно распространенное действие, которое является одним из основных при верстке HTML+CSS. Поэтому описанные ниже способы можете взять на вооружение и выравнивать не только изображения, но и другие блоки.

     

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

    Первый способ — это центрирование блока «div» или параграфа. Если вам нужно центрировать изображение, тогда вы помещаете его в один из этих блоков и центрируете блок.

    Например:

    Код HTML:

    <p class=“imgCenter“>

        <img src=“//полный адрес вашей картинки/img.jpg“ alt=“Выравнивание изображения по центру HTML“>

    </p>

    или блок div:

    <div class=“imgCenter“>

        <img src=“//полный адрес вашей картинки/img.jpg“ alt=“Выравнивание изображения по центру HTML“>

    </div>

    Код CSS будет таким:

    .imgCenter {

         text-align: center;

    }

     

    Как видите, здесь неважно, в какой блок мы поместим изображение, за выравнивание по горизонтали отвечает CSS-свойство «text-align: center».

     

    Выравнивание по центру: по вертикали и горизонтали при помощи отступов CSS

    Этот способ применяется по отношению к блочным элементам, но изображение — это строчный, а не блочный элемент. Поэтому, чтобы такое центрирование заработало, нам нужно изображение поместить в div и применить к нему свойство CSS display: block, чтобы представить его блоковым элементом. 

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

    Например:

    Код HTML:

    <div>

        <img class=“imgCenter“ src=“//полный адрес вашей картинки/img.jpg“ alt=“Выравнивание изображения по центру HTML“>

    </div>

    Код CSS:

    .imgCenter {

    display: block;

    margin: auto;

    }

     

    Заметьте, что в данном случае селектор класса мы добавляем самому изображению, а не блоку, в котором оно расположено. Еще один момент — margin:auto. В этом случае отступы изображения от краев блока div будут задаваться в автоматическом режиме. Если нужно, то можно задать их самостоятельно. Например: margin: 10рх 10рх или margin: 10px 11px 12px 13px. Когда мы задаем 2 значения у margin, то первое значение касается верхней и нижней части изображения, а второе значение — это левая и правая части изображения. Когда мы задаем 4 значения margin, то первое — это верх, второе — справа, третье — низ, четвертое — слева. 

     

    Заключение

    Выравнивание по центру HTML изображения или любого другого блока сработает с одним из этих способов. Это самые простые способы. Но если вы используете свойство flex или grid, то там будут свои методы выравнивания изображения по центру при помощи CSS. О них мы поговорим в следующих наших статьях.

    html — как вертикально выровнять по центру содержимого div с определенной шириной / высотой?

    Я немного исследовал это и из того, что я обнаружил, у вас есть четыре варианта:

    Версия 1: Родительский div с отображением в виде ячейки таблицы

    Если вы не против использования display: table-cell в родительском div, вы можете использовать следующие параметры:

      .area {
        высота: 100 пикселей;
        ширина: 100 пикселей;
        фон: красный;
        маржа: 10 пикселей;
        выравнивание текста: центр;
        дисплей: таблица-ячейка;
        вертикальное выравнивание: по центру;
    }
      

    Live DEMO


    Версия 2: Родительский div с блоком отображения и ячейкой таблицы отображения содержимого

     .площадь{
        высота: 100 пикселей;
        ширина: 100 пикселей;
        фон: красный;
        маржа: 10 пикселей;
        выравнивание текста: центр;
        дисплей: блок;
    }
    
    .содержание {
        высота: 100 пикселей;
        ширина: 100 пикселей;
        дисплей: таблица-ячейка;
        вертикальное выравнивание: по центру;
    }
      

    Live DEMO


    Версия 3: родительский div с плавающей точкой и контентный div в виде ячейки таблицы отображения

      .area {
        фон: красный;
        маржа: 10 пикселей;
        выравнивание текста: центр;
        дисплей: блок;
        плыть налево;
    }
    
    .содержание {
        дисплей: таблица-ячейка;
        вертикальное выравнивание: по центру;
        высота: 100 пикселей;
        ширина: 100 пикселей;
    }
      

    Live DEMO


    Версия 4: Относительная позиция родительского div и абсолютная позиция содержимого

    Единственная проблема, с которой я столкнулся с этой версией, заключается в том, что кажется, что вам придется создавать CSS для каждой конкретной реализации.Причина этого в том, что div содержимого должен иметь заданную высоту, которую будет заполнять ваш текст, и верхний край поля будет рассчитан из этого. Эту проблему можно увидеть в демонстрации. Вы можете заставить его работать для каждого сценария вручную, изменив% высоты вашего div содержимого и умножив его на -,5, чтобы получить значение верхнего предела маржи.

      .area {
        положение: относительное;
        дисплей: блок;
        высота: 100 пикселей;
        ширина: 100 пикселей;
        граница: сплошной черный 1px;
        фон: красный;
        маржа: 10 пикселей;
    }
    
    .содержание {
        позиция: абсолютная;
        верх: 50%;
        высота: 50%;
        ширина: 100 пикселей;
        верхняя маржа: -25%;
        выравнивание текста: центр;
    }
      

    Live DEMO

    Как вертикально центрировать элементы с помощью Bootstrap

    Подпишитесь на нашу рассылку новостей.

    Вертикальное центрирование объектов в веб-дизайне может вызвать чрезмерную головную боль. Вот как вы можете легко центрировать объекты по вертикали, используя простой HTML и Bootstrap по умолчанию.

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

    Раньше вам приходилось знакомиться с Flexbox и создавать ряд настраиваемых классов для выполнения простой задачи центрирования элементов по вертикали.

    К счастью, есть лекарство. Последний выпуск Bootstrap поставляется с классами по умолчанию, чтобы значительно упростить вертикальное центрирование вашего контента.

    Минимальный код с максимумом улыбок.Фактически, мы использовали его на нашем новом веб-сайте Solodev, и наши разработчики были значительно более довольны тем, что элементы веб-сайта согласованы так, как они хотели. (Счастливых дней в офисе наверняка было предостаточно.)

    Вот HTML-код, необходимый для вертикального выравнивания вашего собственного веб-сайта и центрирования вашего хорошего веб-дизайна:

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

    <раздел>

    Веб-студия

    Module Studio

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

    Основные классы, на которые следует обратить внимание, — это классы «d-flex» и «align-items-center». В Bootstrap «d-flex» указывает, что элемент должен отображаться как гибкий. Класс «align-items-center» определяет свойство «align-items: center».

    .align-items-center {
    -ms-flex-align: центр! важно;
    выровнять элементы: центр! важно;
    }
    .d-flex {
    дисплей: -ms-flexbox! важно;
    дисплей: flex! important;
    }

    Лучшая часть всего этого процесса? Bootstrap обрабатывает все. Больше никаких пользовательских классов, и мы, как разработчики, наконец-то можем получить некую стандартизацию, которая решает концептуально простую задачу. Кроме того, вы можете просмотреть все связанные свойства Flexbox, которые теперь включены в базу кода Bootstrap.

    Вот и все: простой способ избавиться от головной боли, связанной с вертикальным центрированием объектов на вашем веб-сайте.

    Выровнять этикетки по центру по вертикали | WordPress.org

    Привет @mjunes,

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

     
    #fbuilder .fields {display: flex;}
    #fbuilder label {display: inline-flex; align-items: center;}
      

    С уважением.

    Автор темы
    Mjunes

    (@mjunes)

    Здравствуйте,

    Спасибо за решение, но при использовании этого решения метки игнорируются text-align: right; недвижимость.Они выравниваются по левому краю. Можно ли как-нибудь правильно выровнять метки по горизонтали, но при этом выровнять их по центру по вертикали?

    Он также заставляет все элементы управления ползунком сжиматься влево.

    Привет @mjunes,

    Не могли бы вы прислать мне URL-адрес веб-страницы? Потому что есть несколько альтернатив, но решение, которое нужно использовать, зависит от случая.

    С уважением.

    Автор темы
    Mjunes

    (@mjunes)

    К сожалению, я не могу поделиться ссылкой.Пожалуйста, дайте мне знать общее решение, и я буду работать оттуда. Спасибо за помощь.

    Привет @mjunes,

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

    Пожалуйста, попробуйте следующую альтернативу, но если она недостаточна для вашего проекта, я рекомендую вам запросить услугу пользовательского кодирования на моем частном веб-сайте (https: // cff.dwbooster.com/customization)

    — Назначьте настраиваемое имя класса полю, метка которого вы хотите центрировать по центру, например: centering-label

    Обратите внимание, что имена классов назначаются полям через их атрибуты: «Добавить ключевые слова макета CSS»

    — а затем определите новый стиль с помощью атрибута «Настроить дизайн формы» на вкладке «Параметры формы» (https://cff.dwbooster.com/images/documentation/form-settings-tab.png), аналогично:

     
    @media screen и (min-width: 710px) {
    #fbuilder.метка центрирования> метка {высота строки: 4em;}
    }
      

    С уважением.

    Автор темы
    Mjunes

    (@mjunes)

    Спасибо. Я добился этого, применив line-height: 4em; ко всем этикеткам.

    CSS Grid самый простой центр по вертикали и горизонтали

    Как продолжение статьи CSS Flex center.

    Который я использовал почти во всех статьях, которые включают демонстрацию, теперь пора дать вам представление о том же принципе с использованием CSS Grid.

    Как и Flexbox, центрировать элемент с помощью сетки очень просто.

    Чтобы полностью центрировать элемент, нам нужно:

      .container {
    display: grid;
    плацдарм: центр;
    мин-высота: 100vh;
    }

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

    Это приведет к следующему:

    См. Наиболее простую таблицу CSS-пера по центру по вертикали и горизонтали Криса Бонгерса (@rebelchris) на CodePen.

    CSS Grid только по центру горизонтальная постоянная ссылка

    Если, например, вам нужно только что-то центрированное по горизонтали, вы можете использовать следующий CSS:

      .container {
    display: grid;
    justify-content: center;
    мин-высота: 100vh;
    }

    Мы можем использовать justify-content и передать значение center , чтобы сделать его центрированным по горизонтали.

    Примечание: это то же самое, что и для дисплея : flex .

    Это приводит к следующему Codepen.

    См. Наиболее удобную центральную горизонтальную сетку Pen CSS Grid Криса Бонгерса (@rebelchris) на CodePen.

    CSS Grid only center only vertical Permalink

    С другой стороны, возможно, вы хотите центрировать только вертикально.

    Для этого можно использовать следующий CSS.

     . Контейнер {
    дисплей: сетка;
    align-items: center;
    мин-высота: 100vh;
    }

    Мы используем align-items со значением center , чтобы получить вертикальное выравнивание.

    Примечание. Это та же функциональность, что и в CSS Flex

    . В результате получается следующий код.

    См. Самую простую вертикальную вертикальную сетку Pen CSS Grid от Криса Бонгерса (@rebelchris) на CodePen.

    Итак, мы узнали еще один очень простой способ центрировать элементы с помощью CSS Grid .

    Спасибо, что прочитали, и давайте подключимся! постоянная ссылка

    Спасибо, что прочитали мой блог. Не стесняйтесь подписаться на мою электронную рассылку и подключиться к Facebook или Twitter

    Как вертикально выровнять текст и изображения в Divi • Примеры тем Divi

    Ваш текст и / или изображение в Divi часто будет выглядеть намного лучше, когда оно выровнено по вертикали .

    Нет встроенной опции для вертикального выравнивания содержимого в Divi.

    Используя CSS с Divi, вы можете убедиться, что ваш контент выровнен для любой высоты контента и автоматически настроен для различных размеров экрана.

    Существует 3 основных способа выровнять контент по вертикали в Divi, включая:

    Вариант 1. Вертикальное выравнивание содержимого в строке с помощью Flex и автоматического поля

    1. В настройках строки на вкладке щелкните вкладку Sizing и установите для параметра Equalize Column Heights значение yes .Это добавляет к строке свойство CSS flex.
    2. В настройках строки Вкладка Content , выберите столбец, который вы хотите выровнять по вертикали и щелкните значок настройки для этого столбца. Откройте вкладку настроек столбца Advanced , затем откройте раздел Custom CSS и следующие CSS в поле Main Element CSS.
       маржа: авто;
       

      Как вы можете видеть ниже, есть 3 столбца с выравниванием высоты столбца и заданным цветом фона.Я добавил автоматическое поле CSS в столбец 2, который теперь отображает модули текста и кнопок, выровненные по вертикали.

      Цвет фона столбца больше не выравнивается для всех 3 столбцов при использовании этого метода. Если вы хотите сохранить цвета фона столбца в вертикально выровненных столбцах, вы можете использовать метод CSS Flex Direction ниже.

      Вы можете добавить один и тот же код CSS в каждый столбец, который хотите выровнять по вертикали.

    Вариант 2. Вертикальное выравнивание содержимого в строке с использованием направления CSS Flex

    1. На вкладке «Дизайн» параметров строки щелкните вкладку «Размер» и установите для параметра «Выровнять высоту столбца» значение «Да».Это добавляет к строке свойство CSS flex.
    2. На вкладке Content с настройками строки выберите столбец, который вы хотите выровнять по вертикали, и щелкните значок настройки для этого столбца. Откройте вкладку Advanced с настройками столбца, затем откройте раздел Custom CSS и добавьте следующий CSS в основной элемент Поле CSS.
       дисплей: гибкий;
      flex-direction: столбец;
      justify-content: center;
       

      Как вы можете видеть ниже, есть 3 столбца с выравниванием высоты столбца и заданным цветом фона.Я добавил направление гибкости CSS в столбец 2, который теперь отображает модули текста и кнопок, выровненные по вертикали.

      Цвет фона столбца по-прежнему выравнивается для всех 3 столбцов при использовании этого метода.

      Вы можете добавить один и тот же код CSS в каждый столбец, который хотите выровнять по вертикали.

    Вариант 2: Вертикальное выравнивание содержимого для всех столбцов

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

    Чтобы вертикально центрировать содержимое во всех столбцах в строке, вы можете добавить одну строку CSS в расширенные настройки строк.

    1. На вкладке настроек строки Advanced щелкните вкладку Custom CSS и добавьте следующий код;
       align-items: center;
       

    Посмотрите видео ниже, чтобы увидеть содержимое с вертикальным выравниванием в действии

    4.5 2 голосов

    Рейтинг статьи

    Крэйг Лонгмюр (Craig Longmuir) работает внештатным веб-дизайнером с 2006 года и является владельцем демонстрационной галереи DiviThemeExamples.com и каталога макетов DiviLayouts.com. Давний член Elegant Themes и оригинальный куратор примеров веб-сайтов Divi, макетов, плагинов и дочерних тем с 2014 года. Полный профиль автора и сообщения

    Как установить вертикальный центр и горизонтальный центр xxx /? · Проблема №325 · facebook / react-native · GitHub

    Как выровнять по центру по вертикали и по горизонтали xxx / ? · Проблема №325 · facebook / react-native · GitHub

    Комментарии

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    19 апреля 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.Исправления facebook # 325 

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    21 апреля 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.
    
    Исправления facebook # 325 

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    17 мая 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.Исправления facebook # 325 

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    25 мая 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.
    
    Исправления facebook # 325 

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    25 мая 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.Исправления facebook # 325 

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    25 мая 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.
    
    Исправления facebook # 325 

    Розеле

    добавил коммит
    to rozele / react-native
    это упомянуло
    Эта проблема

    25 мая 2016 г.

     Если свойство не установлено, собственный стек должен по умолчанию использовать заданное значение.Исправления facebook # 325 

    Вы не можете выполнить это действие в настоящее время.

    Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс.
    Вы вышли из системы на другой вкладке или в другом окне.Перезагрузите, чтобы обновить сеанс.

    Полное руководство по центрированию в CSS

    Приготовьтесь узнать, как подойти к давнему вопросу, с которым сталкиваются многие практикующие CSS:
    «Как центрировать div?»

    Охваченные случаи использования #

    1. Вертикально и горизонтально (XY)
    2. Вертикальное центрирование (Y)
    3. Горизонтальное центрирование (X)

    Вертикально и горизонтально (XY) #

    Святой Грааль: вертикальное и горизонтальное центрирование, также известное как центрирование по оси x и оси y .

    Решение для XY-сетки №

    Самый современный и самый простой со следующими двумя строками CSS:

      дисплей: сетка; 
    место-содержание: центр;

    Мы в центре!

    Мы в центре!

    Попался

    Свертывание дочерней сетки с использованием автозаполнения или автозаполнения

    Учитывая дочернюю сетку, в которой используются следующие стили:

      столбцы-шаблон-сетки: повтор ([автоподгонка или автозаполнение], minmax (10ch, 1fr));  

    Дочерняя сетка схлопнется сама по себе, в данном случае до min части minmax из-за justify-content , установленного в сокращении place-content .

    Исправление двоякое: переключите технику центрирования сетки на использование элементов-мест вместо элементов-мест , а затем специально укажите, что дочерняя сетка должна быть:

      ширина: 100%;  

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

    Хотели бы вы, чтобы подсказки CSS были в вашем почтовом ящике? Подпишитесь на мой информационный бюллетень, чтобы получать обновления статей, советы по CSS и внешние ресурсы!

    Решение XY Flexbox №

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

      дисплей: гибкий; 
    align-items: center;
    justify-content: center;
    Попался

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

    Мы в центре!

    …Вроде, как бы, что-то вроде!

    Один из способов решить эту проблему — добавить:

      flex-direction: столбец;  

    В качестве альтернативы, оберните дочерние элементы в один элемент, особенно если вы не хотите, чтобы на них влияло внешнее выравнивание flexbox.

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

    Альтернативное решение Flexbox для XY #

    margin: auto уникален для flexbox, и если у вас только один дочерний элемент, вы можете сделать следующее:

     .родительский {
    дисплей: гибкий;
    }

    .child {
    маржа: авто;
    }

    Поведение auto для дочерних элементов flex, в отличие от дочерних элементов блочных элементов, также может применяться вертикально, что позволяет этому решению работать.

    Центрирование по XY для блочных элементов #

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

    Убедитесь, что дочерние элементы заключены в содержащий элемент, чтобы работало следующее:

     .родительская позиция {
    : относительная;
    }

    .child-wrapper {
    позиция: абсолютная;
    верх: 50%;
    осталось: 50%;
    преобразование: перевод (-50%, -50%);
    }

    Я по центру вертикально!

    Я тоже!

    Эта комбинация работает, потому что когда процентное значение предоставляется в определение translate , оно основано на вычисленной ширине ( translateX ) или высоте ( translateY ). В этом примере мы используем сокращение для применения значений x и y к translate () .

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

    После абсолютного позиционирования дочернего элемента из верхних 50% и оставшихся 50%, что составляет 50% высоты и ширины родителя, соответственно, мы затем используем translate (-50%, -50%) , чтобы подтянуть дочерний элемент обратно вверх. 50% собственной высоты, а задняя часть оставила 50% собственной ширины.Это приводит к центрированию внешнего вида, масштабируемому вместе с содержимым.

    Попался

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

    Исправление: используйте сетку или flexbox 🙂 Или подготовьтесь к созданию #allthemediaqueries.

    Вертикальное центрирование (Y) #

    Решения для вертикального центрирования, также известного как по оси Y .

    Решение Y-сетки №

    Нам нужно только одно свойство для вертикального выравнивания в сетке:

      align-content: center;  

    Я по центру вертикально!

    Я тоже!

    Использование align-content масштабируется для нескольких дочерних элементов.

    Это также работает, если мы переключим ось сетки по умолчанию на x с помощью:

      сетка-автопоток: колонка;  

    Я по центру вертикально!

    Я тоже!

    Y Решение Flexbox №

    Элементы Flexbox можно выровнять по вертикали:

      align-items: center;  

    Я по центру вертикально!

    Я тоже!

    Попался

    Если вы переключите ось по умолчанию, добавив flex-direction: column , это решение не сработает.

    Теперь я центрирован … по горизонтали?

    Хм, я тоже …

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

    Для column или y-axis flex layout, вместо align-items нам теперь нужно использовать:

      justify-content: center;  

    Я по центру вертикально!

    Я тоже!

    Центровка по оси Y для блочных элементов #

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

    В противном случае, как и в решении XY, мы будем использовать абсолютное позиционирование и преобразование, но применим только к translateY , чтобы переместить дочерний элемент на 50% его высоты.

      .parent {
    позиция: относительная;
    }

    .child-wrapper {
    позиция: абсолютная;
    верх: 50%;
    преобразование: translateY (-50%);
    }

    Я по центру вертикально!

    Я тоже!

    См. «Центрирование XY для блочных элементов», чтобы узнать, почему это работает.

    Горизонтальное центрирование (X) #

    Решения для горизонтального центрирования, также известного как по оси x .

    X Сетевое решение №

    Свойства justify- предназначены для оси x выравнивания:

      justify-content: center;  

    Я центрирован по горизонтали!

    Я тоже!

    Опять же, это работает, если мы переключим ось по умолчанию с помощью:

      сетка-автопоток: колонка;  

    Я центрирован по горизонтали!

    Я тоже!

    X Решение Flexbox №

    Для центрирования по оси x , которая является осью гибкого бокса по умолчанию для выравнивания дочерних элементов, используйте:

      justify-content: center;  

    Я центрирован по горизонтали!

    Я тоже!

    Попался

    На этом этапе вы знаете, что произойдет — это не удастся для flex-direction: column .

    Мы исправим это, используя вместо justify-content :

      align-items: center;  

    Я центрирован по горизонтали!

    Я тоже!

    X Центрирование для блочных элементов #

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

      левое поле: авто; 
    поле справа: авто;

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

    Я центрирован по горизонтали!

    Я тоже!

    Центрирование по оси X для динамически позиционируемых элементов #

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

    Мы будем использовать метод, аналогичный центрированию Y для элементов блока, но с использованием left и свойств translateX :

      .parent {
    позиция: относительная;
    }

    .дочерняя оболочка {
    позиция: абсолютная;
    осталось: 50%;
    преобразование: translateX (-50%);
    }

    Я по центру вертикально!

    Я тоже!

    .

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

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