✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Динамическое центрирование элемента в контейнере с помощью CSS

11

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

Я имею в виду, да, CSS является частью сделки, как и HTML, но в наши дни это ожидается, верно?

Так что, если я когда-либо мог дать краткий совет относительно CSS, то это он (хотя, может быть, мне следует написать больше?). Это тяжело, когда Крис делает такую ​​потрясающую работу с CSS Tricks, но я отвлекся.

В любом случае, вот проблема и решение.

Динамическое центрирование элемента в контейнере

Идея динамического центрирования элемента основана на следующем сценарии:

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

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

Помните: вы не можете поместить такие вещи, как элементы div в элементы li (поскольку div — это элемент блочного уровня), не изменив его с помощью некоторого CSS. И мы хотим избежать этого.

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

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

.acme-element { position: relative; top: 50%; transform: translateY(-50%); height: auto; max-height: 190px; }

Ключом к этому, на самом деле, является стиль преобразования. Согласно МДН :

Функция CSS translateY() перемещает элемент по вертикали в 2D-плоскости. Его результатом является тип данных.

Есть смысл?

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

Это о преобразованиях

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

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

Источник записи: tommcfarlin.com

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