Сделать блок/элемент по центру в HTML

· HTML & CSS, JavaScript и Блог · 2 мин чтения

В этом записи я поделюсь вариантом того, как можно сделать блок по центру с помощью jQuery или CSS.

Я покажу вам как это сделать с помощью jQuery и  CSS.

jQuery

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

Вы можете его сохранить в отдельный .js файл и подключить в <head></head> или просто указать код между <script></script>.

jQuery.fn.center = function(parent) {
    if (parent) {
        parent = this.parent();
    } else {
        parent = window;
    }
    this.css({
        "position": "absolute",
        "top": ((($(parent).height() - this.outerHeight()) / 2) + $(parent).scrollTop() + "px"),
        "left": ((($(parent).width() - this.outerWidth()) / 2) + $(parent).scrollLeft() + "px")
    });
return this;
}

Если вы хотите центрировать блок по родительскому элементу, то вам нужно указывать true (как аргумент метода .center()), если нет — false. Пример того как использовать данный снипет показан ниже:

 

<script> 
    // центрировать по родителю 
    $('ваш элемент').center(true);

    // центрировать экраню пользователя
    $('ваш элемент').center(false);
</script>

На место $('ваш элемент') вписывается элемент, который вы хотите расположить по центру.

jQuery демо

Первый квадрат «1 родитель» (.center(true)) находится внутри родительского элемента .container-demo-jquery, тем самым он по центру родительского элемента. Второй квадрат «2 окно браузера» (.center(false)) центрируется по экрану пользователя (то есть вне зависимости от родительских элемента).

Посмотреть демо на jsfiddle.

Кроссбраузерность

jQuery гарантирует 100% кроссбраузерность. Тем самым, элемент, для которого стоит центрирование будет корректно отображаться на всех устройствах.

CSS

Блок так же можно выравнивать с помощью CSS. Ниже показан пример того как это можно сделать:

.center {
    position: fixed;
    top:calc(50% - 50px/2); /* высота деленная на 2*/
    left:calc(50% - 50px/2); /* высота деленная на 2*/
}

После чего можно указать класс .center для какого-нибудь элемента. Как показано на примере ниже.

<div class="center"></div>

Кроссбраузерность

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

Демо

Первый квадрат имеет .center класс, второй — нет.

Посмотреть демо на jsfiddle.