Добавление пространства между div в flexbox - PullRequest
0 голосов
/ 28 июня 2018

Я хочу спросить о хорошей практике в создании промежутка между двумя div, которые имеют flexbox. Например:

enter image description here

header {
  background-image: radial-gradient(circle, #72d6c9, #54d1ed, #7ac5ff, #bcb2fe, #f29cd9);
  height: 80px;
}

.menu-section {
  display: flex;
}

.nav-logo {
  color: #e00986;
  font-size: 25px;
  margin: 0;
  padding-left: 15px;
  line-height: 80px;
}

nav ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  text-align: center;
}

nav ul li {
  display: inline-block;
  width: 150px;
  position: relative;
}

nav ul li a {
  text-decoration: none;
  line-height: 80px;
  padding: 0 10px;
  display: block;
  color: #e00986;
}

nav ul li a:hover {
  color: #FFF;
  transition-duration: 2s;
}
<header>
  <nav class="menu-section">
    <h1 class="nav-logo">Love &#9825 Cookies</h1>
    <ul>
      <li><a href="#">Strona główna</a></li>
      <li><a href="#">Ciastka</a>
        <ul>
          <li><a href="#">Torty</a></li>
          <li><a href="#">Babeczki</a></li>
          <li><a href="#">Bezy</a></li>
          <li><a href="#">Ciasta</a></li>
        </ul>
      </li>
      <li><a href="#">Kontakt</a></li>
    </ul>
  </nav>
</header>

Конечно, я могу дать поле слева: 550 пикселей для nav ul, и все будет хорошо, но я не думаю, что это хорошая практика. Каково ваше мнение в этой теме?

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Полагаю, вам нужно переместить меню навигации вправо, читая комментарии.

Таким образом, решение этой проблемы - оставить место для навигации (ссылки в меню). Да, вы определенно можете использовать margin-left, но вам не нужно указывать точные пиксели.

Лучше бы дать margin-left:auto, чтобы оставшееся место оставалось слева от вашей навигации

Решение:

header {
  background-image: radial-gradient(circle, #72d6c9, #54d1ed, #7ac5ff, #bcb2fe, #f29cd9);
  height: 80px;
}

.menu-section {
  display: flex;
}

.nav-logo {
  color: #e00986;
  font-size: 25px;
  margin: 0;
  padding-left: 15px;
  line-height: 80px;
}

nav ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  text-align: center;
  margin-left:auto; /*ADDED HERE - THIS IS THE TRICK :)*/
}

nav ul li {
  display: inline-block;
  width: 150px;
  position: relative;
}

nav ul li a {
  text-decoration: none;
  line-height: 80px;
  padding: 0 10px;
  display: block;
  color: #e00986;
}

nav ul li a:hover {
  color: #FFF;
  transition-duration: 2s;
}
<header>
  <nav class="menu-section">
    <h1 class="nav-logo">Love &#9825 Cookies</h1>
    <ul>
      <li><a href="#">Strona główna</a></li>
      <li><a href="#">Ciastka</a>
        <ul>
          <li><a href="#">Torty</a></li>
          <li><a href="#">Babeczki</a></li>
          <li><a href="#">Bezy</a></li>
          <li><a href="#">Ciasta</a></li>
        </ul>
      </li>
      <li><a href="#">Kontakt</a></li>
    </ul>
  </nav>
</header>

Надеюсь, это поможет вам.

0 голосов
/ 28 июня 2018

Все, что вам нужно сделать, это сделать родительские элементы этих двух элементов div (левый логотип и правые пункты меню) гибкими и отображать содержимое justify: space -ween или justify-content: space -round, например

.parent-div {
  display:flex;
  justify-content: space-between; //or space-around
}

.child-left {//doesn't matter what you put in here just so long as its a div}

.child-right {//doesn't matter what you put in here just so long as its a div}

Если у вас есть еще вопросы, я пойду сюда, если мне понадобится помощь, чтобы выяснить, как использовать flex: https://css -tricks.com / snippets / css / a-guide-to-flexbox /

0 голосов
/ 28 июня 2018
.nav-logo
{
    color: #e00986;
    font-size: 25px;
    margin-right: 100px;
    padding-left: 15px;
    line-height: 80px;
}

Использовать запас для внешнего расстояния:)!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...