Домашняя » кодирование » 6 хитростей CSS для выравнивания контента по вертикали

    6 хитростей CSS для выравнивания контента по вертикали

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

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

    1. Используйте абсолютное позиционирование

    Первый трюк, который мы здесь увидим, использует позиция имущество. У вас есть два

    , один - контейнер, другой - дочерний элемент, содержащий содержимое.

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

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

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

    2. Используйте CSS3 Transform

    CSS3 Transform упростил размещение контента в центре. CSS3 Transform, в отличие от позиция свойство, не повлияет на положение других элементов в том же контейнере.

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

    Имейте в виду, что CSS3 Transforms не будет работать в Internet Explorer 8 и ниже. Вы можете использовать любой из других методов здесь в качестве запасного.

    3. Используйте Padding

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

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

    4. Используйте высоту строки

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

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

    5. Используйте таблицу CSS

    Лично использование CSS Table - мой любимый трюк для применения вертикального выравнивания. Он работает в старых браузерах, таких как Internet Explorer 8. Этот метод выполняется путем установки отображения элемента контейнера в Таблица, в то время как дочерний элемент должен отображаться как Стол-элементная затем используйте вертикальные выравнивания свойство центрировать текст по вертикали.

    6. Используйте Flexbox

    Последний метод вертикального центрирования - использование Flexbox. Flexbox - это новый модуль в CSS3. Он предлагает более простой метод выравнивания контента. Чтобы центрировать содержимое по вертикали во флекс-боксе, просто добавьте align-items: center; следующим образом, и это все.

    Имейте в виду, что некоторые браузеры Flexbox поддерживают только функцию частичных функций модуля Flexbox, например Internet Explorer 10, Safari 6 и Chrome 27 и ниже. Следовательно, аналогично трюку с CSS3 Transform, убедитесь, что эффект хорошо падает в этих браузерах.