Выровнять блок по центру html: Как выровнять слой по центру веб-страницы?

Создание центральной горизонтальной навигации – Мастерство CSS – Оптимизация веб-производительности

Автор: на Мастерство CSS .

Содержание
  1. Демо
  2. Обновление

Центрировать элементы уровня блока легко, просто задайте ширину и установите margin:0 auto; , но что, если вы не знаете эту фиксированную ширину? Вы можете использовать text-align:center; но это также не будет работать на блочных элементах шириной 100%… это только работать с элементами текстового уровня.

По возможности всегда следует избегать явного определения ширины и высоты, так как это сделает документ намного менее ориентированным на будущее, гибким и расширяемый… Предположим, у вас есть четыре пункта в меню навигации — вы можете работать уменьшите их ширину и используйте margin:0 auto; , чтобы отцентрировать их. Добавление пятого увеличит ширину, а это означает, что вам также нужно будет изменить CSS. это далеко от идеала, и тем более с CMS для работы сайта (клиент может добавлять страницы, но, возможно, не может редактировать CSS).

Однако есть способ сделать горизонтальную навигацию по центру, не зная явную ширину и не добавляя CSS. Это также удивительно легко.

Наценка:

 <ул>
  
  • Главная
  • О нас
  • Работа
  • Клиенты
  • Контакты
  • Довольно стандартный, неупорядоченный список пунктов меню. CSS находится там, где он есть. Я выделил биты, которые выполняют большую часть работы:

     .nav{
        граница: 1px сплошная #ccc;
        ширина границы: 1px 0;
        стиль списка: нет;
        маржа: 0;
        заполнение: 0;
          выравнивание текста: по центру; 
    }
    .nav ли {
          дисплей: встроенный; 
    }
    .
    nav { дисплей: встроенный блок; отступ: 10 пикселей; }

    Здесь я просто создал список навигации и присвоил ему верхнюю границу. и нижний (исключительно для выделения текста по центру). Вместо того, чтобы плавать block-level

  • Осталось с Я дал им display:inline; , то есть они больше не занимают 100% доступной ширины, и теперь они хорошо складываются друг против друга.

    Затем мы используем (намного недоиспользованный) display:inline-block; , чтобы убедиться, что ссылки сами не разбиваются на новые строки, но по-прежнему подчиняются любым значениям заполнения соответственно. Здесь я увеличил область попадания, добавив padding:10px;

    Вы могли бы, если хотите, применить встроенный блок к

  • с. Однако IE6-7 позволит встроенному блоку
    работать только с элементами, которые изначально встроенные элементы. дисплей: встроенный блок; не будет работать с блочными элементами.

    Вот небольшая демонстрация. Попробуйте использовать Firebug или аналогичный для добавления другие элементы списка на лету и наблюдайте, как они органично центрируются в списке. я протестировали это в IE7-8 и обнаружили, что он отлично работает. Я не проверял IE6, но Я думаю, все будет хорошо.

    Обновление

    Вы спросили, и я услышал; Я сделал выпадающую версию с помощью CSS. для тебя. Строка верх: 100%; заставит раскрывающийся список работать в IE7, но вроде немного портит опыт во всех других браузерах. Оставите ли вы его или не зависит от вас. Опять же, просмотр исходного кода с практическими рекомендациями…



    ☕️ Помогло? Купи мне кофе!

    AtoZ Совет по CSS: Плавающие, четкие и центрирующие элементы

    HTML и CSS

      CSS

    Загрузка плеера…

    Добро пожаловать в нашу серию AtoZ CSS! В этой серии я буду исследовать различные значения (и свойства) CSS, каждое из которых начинается с отдельной буквы алфавита. В этой статье я добавил новый краткий совет/урок о свойствах Float и Clear и о том, как центрировать элементы различными способами.

    F для Float and Clear

    Float отлично подходит, если вы хотите переместить элемент влево или вправо на странице, но, к сожалению, вы не можете сделать float: center для центрирования элемента. Какая боль правда?

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

    Совет 1

    Если элемент является блочным, вы можете комбинировать width и margin: auto .

    margin: auto автоматически рассчитает поля слева и справа, чтобы они оба были равны, центрируя блок внутри содержащего его элемента.

    См. Pen tip-margin-auto от SitePoint (@SitePoint) на CodePen.

    Совет 2

    Если элемент является встроенным (или встроенным в блок), используйте text-align: center в родительском контейнере.

    См. Pen tip-flexbox от SitePoint (@SitePoint) на CodePen.

    Подсказка 3

    Если элемент абсолютно позиционирован, объедините влево и преобразуйте для центрирования элемента по горизонтали.

    См. Pen tip-flexbox от SitePoint (@SitePoint) на CodePen.

    Аналогичную технику можно использовать для вертикального центрирования элементов, но об этом в следующем совете!

    Совет 4

    Используйте flexbox (еще одно свойство ‘F’, ура!)

    Чтобы использовать flexbox для центрирования одного элемента (или группы элементов), вам нужно установить два свойства для содержащего элемента: display: flex и justify-content: center .

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

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