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

У меня проблема с выравниванием моего логотипа и ссылок по вертикали. Я пытался добиться этого, используя встроенный блок и vertical-align, установленный на middle, но это не сработало.

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

Пожалуйста, любая помощь будет оценена по достоинству.

.header {
  padding: 20px;
  background: #000;
  color: #fff;
}

.logo,
ul {
  display: inline-block;
  vertical-align: middle;
}

ul {
  list-style: none;
  float: right;
}

ul li {
  display: inline-block;
}
<div class = "header">
  <div class = "logo">XCode</div>
  <ul>
    <li>Account settings</li>
    <li>Profile</li>
    <li>Logout</li>
  </ul>
</div>

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

Возможный дубликат Как центрировать текст по вертикали с помощью CSS?

Nisarg 10.04.2018 05:05

это не тот же вопрос / проблемы

Friday Ameh 10.04.2018 05:07
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
2
171
5

Ответы 5

Во многих браузерах элемент ul по умолчанию имеет верхнее и нижнее поля.

Хром:

Эти поля нарушают вертикальное центрирование. Просто удали их.

.header {
  padding: 20px;
  background: #000;
  color: #fff;
}

.logo, ul {
  display: inline-block;
  vertical-align: middle;
}

ul {
  margin: 0; /* NEW */
  list-style: none;
  float: right;
}

ul li {
  display: inline-block;
}
<div class = "header">
  <div class = "logo">XCode</div>
  <ul>
    <li>Account settings</li>
    <li>Profile</li>
    <li>Logout</li>
  </ul>
</div>

получил свое. Спасибо большое отлично

Friday Ameh 10.04.2018 05:09

Вы можете проверить Bulma, особенно их атрибут Уровень. Здесь используется flexbox в фоновом режиме, но вам не нужно его изучать - только простые в использовании классы!

<!-- Main container -->
<nav class = "level">

    <!-- Left side -->
    <div class = "level-left">
        <div class = "level-item">
            <p class = "subtitle is-5">Content</p>
        </div>

    </div>

    <!-- Right side -->
    <div class = "level-right"> 
        <p class = "level-item">More Content</p> 
        <p class = "level-item"><a class = "button is-success">New</a></p>
    </div>
</nav>

В некоторых браузерах элемент <ul> по умолчанию имеет маржу.

Пытаться

ul {
  list-style: none;
  float: right;
  margin: 0;
}

чтобы удалить поля по умолчанию.

маржа: 0; Вам поможет.

ul {
  list-style: none;
  float: right;
  margin: 0;
}

https://jsfiddle.net/n0o915w3/1/

ul {
  list-style: none;
  float: right;
  margin:0 auto;
}
margin:0 auto; will help you to set the ul element in vertically align.

.header {
  padding: 20px;
  background: #000;
  color: #fff;
}

.logo,
ul {
  display: inline-block;
  vertical-align: middle;
}

ul {
  list-style: none;
  float: right;
  margin:0 auto;
}

ul li {
  display: inline-block;
}
<div class = "header">
  <div class = "logo">XCode</div>
  <ul>
    <li>Account settings</li>
    <li>Profile</li>
    <li>Logout</li>
  </ul>
</div>

Другие вопросы по теме