Css выравнивание по центру блоков: Выравниваем блок по центру страницы / Хабр

Содержание

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

Рубрики

HTML&CSS

  • Автор записи Автор: Алексей Исаенко
  • Дата записи 22.03.2014

По поводу того, как выравнивать блок по вертикали написано масса материалов и статей, но самым простым способом является использование решения, которое будет работать везде. И все благодаря CSS 3.

Помимо свойства display: table появилось есть свойство display: table-cell и именно комбинацию этих двух свойств мы будем использовать.

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

Выравнивание блока по вертикали, код HTML:

<div>

    <div>

        <div>Выравнивание — блок по вертикали</div>

    </div>

</div>

Для наглядности окрасим родительский блок в красный, а дочерний в серый.

Выравнивание блока по вертикали, код CSS:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

.main_block {

    display: table;

    width: 100%;

    height: 200px;

    background: #f00;

}

.main_block > div {

    display: table-cell;

    vertical-align: middle;

    background: #eee;

    height: 30px;

}

.block {

    background: #ccc;

}

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

Результат: блок по вертикали:


Разумеется, помимо этих основных моментов выровнять блок по вертикали потребуется еще указать высоту главного блока, если это будет необходимо. При данном варианте решения задачи выравнивания не придется «бороться» с Internet Explorer, как было бы, если бы использовалось свойство display:inline-block.

Данный метод является самым простым и компактным из всех существующих и работает везде.

  • Метки css, html, вертикаль, выравнивание, центр

Автор: Алексей Исаенко

Работаю full-stack разработчиком, специализируюсь на WordPress. За время трудовой деятельности сделал несколько полезных для пользователей вещей.
Помимо этого занимаюсь преподаванием — веду курсы по web-разработке.

Нравится лето, решать новые задачи в разработке, WordPress и Яндекс.

Просмотр архива →

5 способов выравнивание блоков div по центру при помощи CSS

Уроки по HTML (основы)
Просмотров: 6854

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

 

  1.  Самый простой способ – с использованием стиля margin:10px auto 5px;
    Его можно применять для выравнивания одного блока. Два и более блока в этом случае будут располагаться вертикально.

    стиль:
    .blk1 { /* выравнивание блоков по центру */
                    margin:10px auto 5px; 

                /* эти стили на выравнивание не влияют */
                width: 400px;
                background-color:#CCC;
                border: 1px solid #999;
                padding: 20px;
}

Код HTML-смтраницы:

<div> Содержание блока 1. Текст, текст, … </div>
<div> Содержание блока 2. Текст, текст, … </div>

  1.  Процентный способ выравнивания. Его использовать можно тогда, когда ширина блока задана в процентах. Принцип в  том, что если ширина блока 60%, то на отступы слева и справа остается 40% (по 20% с каждой стороны). В этом случае можно для этих блоков применять стиль:

margin:5px 20% 10px 20%;

               width:60%;
Код страницы аналогичен предыдущему способу.

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

  1. Смешанный способ выравнивания блока по центру:

    left: 50%;
    margin-left: -500px;
    position: absolute;

    Это не самый лучший, т.к. имеет ряд недостатков:  

    1. выравнивание получается не совсем по центру;
    2. при использовании двух и более блоков на странице виден только последний, т. к. стиль position: absolute;  (абсолютное позиционирование) ставит все блоки в одно место.

  1. С использованием родительского блока
    . Метод предполагает использование одного дополнительного общего блока, внутри которого помещаются выравниваемые блоки.
    В этом случае HTML-код страницы:

<div>
                <div> Содержание блока 1. Текст, текст… </div>
                <div> Содержание блока 2. Текст, текст… </div>
               …  ниже дополнительные блоки (при необходимости)  …
                <div> Содержание блока 3. Текст, текст… </div>
                <div> Содержание блока 4. Текст, текст… </div>
                <div> Содержание блока 5. Текст, текст… </div>

</div
>

Стили для этих блоков:

.dop-block {
                position: relative;
                float: right;
                right: 50%;
}
.

blk4 {
                position: relative;
                float: left;
                left: 50%;

                /* эти стили на выравнивание не влияют       */
               
margin: 5px;
               
background-color:#CCC;
               
width:400px;
               
border: 1px solid #999;
                padding: 20px;
}

Если блоков в странице не много, т.е. они помещаются в одну строку, то выравнивание для них работает:

Главный недостаток — когда блоков много и они не помещаются в 1 ряд, то выравнивание блоков по центру перестает работать:
 

  1. С использованием стиля text-align: center; в родительском блоке и стиля display: inline-block;
    в дочерних. Тогда HTML-код страницы:

<div>
                <div> Содержание
блока 1. Текст, текст… </div>
                <div> Содержание блока 2. Текст, текст… </div>
               …  ниже дополнительные блоки (при необходимости)  …
                <div> Содержание блока 3. Текст, текст… </div>
                <div> Содержание блока 4. Текст, текст… </div>
                <div> Содержание блока 5. Текст, текст… </div>
</div>

Стили для этих блоков:

.dop-block {
                text-align: center;
}

.blk5 {
                display: inline-block;   

                /* дополнительный стиль для вытавнивания текста внутри блока  */

                text-align:left;                

             /* эти стили на выравнивание блоков не влияют         */
               
margin: 5px;
               
background-color:#CCC;
               
width:400px;
               
border: 1px solid #999;
                padding: 20px;

}

Страница в этом варианте будет выравнивать блоки даже если их общая длинна превышает ширину окна браузера:

Не все способы описаны. Если вы считаете, что есть еще более удобный способ, напишите.

ПРАВИЛЬНЫЙ способ выравнивания по центру макетов веб-сайтов

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

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

Вот так выглядит центрированный сайт. Также см. живую демонстрацию

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

Концепция

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

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

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

  • Негибкая ширина макета или оболочки содержимого
  • Использование модуля CSS выравнивания текста для выравнивания макета по центру

Гибкая ширина обертки

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

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

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

HTML

Предполагая, что вы хорошо знакомы с HTML и CSS, давайте начнем с основного макета, который мы собираемся здесь реализовать.

 

<голова>
  <мета-кодировка="UTF-8">
  

<тело>
  <дел>
    
  

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

УСБ
 .content-обертка {
  максимальная ширина:  960px  ;
} 

Семантическое выравнивание макета

Выравнивание макета с помощью свойств text-alignment звучит не очень разумно с семантической точки зрения. Сегодня у нас есть волшебные модули CSS, такие как Flexbox и Grid, которые упрощают задачу выравнивания.

На самом деле у меня есть отдельное руководство по абсолютному центрированию с помощью CSS.

Но подождите. Как насчет свойства margin в CSS?

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

 .content-обертка {
  поле справа: авто;
  поле слева: авто;
  максимальная ширина:  960px  ;
} 

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

 .centered-block-x {
  дисплей: блок;
  поле справа: авто;
  поле слева: авто;
  максимальная ширина:  960px  ;
} 

Демонстрация горизонтально центрированного веб-макета

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

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

 .centered-block-y {
  дисплей: блок;
  верхняя граница: авто;
  нижняя граница: авто;
  максимальная высота:  500px  ;
} 

Горизонтальное центрирование гораздо более распространено, чем вертикальное центрирование макетов.

Абсолютно центрированные макеты

Теперь мы знаем, как правильно центрировать наш веб-макет как по вертикали, так и по горизонтали. А как насчет абсолютного центрирования по обеим осям?

Взгляните, например, на приведенный ниже CSS.

 .centered-block {
  дисплей: блок;
  маржа: авто;
  максимальная высота:  500px  ;
  максимальная ширина:  500px  ;
} 

В заключение

Ура! Это было легко, не так ли? Именно так я и большинство интерфейсных веб-разработчиков центрируем свои веб-сайты и контейнеры. Как всегда, предложения и вопросы приветствуются. Не стесняйтесь поделиться своим опытом центрирования веб-сайтов.

Нужны обновления?

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

Как выровнять видео по центру в WordPress

Вы хотите выровнять видео по центру в WordPress?

По умолчанию, если ширина вашего видео меньше площади вашей статьи, WordPress автоматически выравнивает его по левому краю, оставляя дополнительное пустое пространство справа.

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

Зачем выравнивать видео по центру в WordPress?

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

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

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

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

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

  • Как выровнять видео по центру в редакторе контента WordPress
  • Как выровнять видео по центру в редакторе Classic
Как выровнять видео по центру в редакторе контента WordPress

Если вы хотите, чтобы ваше видео занимало всю ширину области содержимого , то лучший способ сделать это — добавить URL-адрес видео YouTube или Vimeo непосредственно в редактор контента WordPress.

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

Затем выберите видеоблок и щелкните параметр Изменить выравнивание . В раскрывающемся меню вы можете выбрать положение видео.

WordPress позволяет выбрать одно из следующих выравниваний:

  • по ширине
  • по ширине
  • по левому краю
  • выравнивание по центру
  • выравнивание по правому краю.

Выберите опцию «Выровнять по центру».

После этого вы можете просмотреть и опубликовать свою страницу или сообщение.

Теперь видео будет выровнено по центру.

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

Во-первых, вам нужно нажать на 3 значка с точками в видеоблоке. После этого вы можете выбрать опцию «Редактировать как HTML» в раскрывающемся меню.

Затем вы можете ввести следующий фрагмент кода HTML вокруг кода встраивания видео:

<дел>
/// здесь находится код для встраивания вашего видео

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

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

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


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

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

Когда вы окажетесь в редакторе, переключитесь в текстовое представление.