Navbar - Расположите элемент в центре и исправьте панель навигации. - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь реализовать панель навигации и хочу расположить несколько элементов в трех разных положениях (выравнивание по левому, правому краю и по центру).

Моя проблема заключается в том, что элементы в центре не центрированы экран, может кто-нибудь помочь мне решить мою проблему и понять, в чем моя ошибка?

Есть ли способ исправить панель навигации, ie при прокрутке она никогда не исчезает?

Спасибо!

Мой код DEMO

HTML

<nav class="navbar">
        <ul class="nav">
          <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png"></a>
          </li>   
        </ul>
        <ul class="nav justify-content-center divBtn">
          <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png"></a>
          </li>   
        </ul>
        <ul class="nav justify-content-end">
          <li class="nav-item">
             <button>My buttons</button>
              <button>My buttons</button>
          </li>
             <li class="nav-item">
              <button>My buttons</button>
          </li>
             <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png"></a>
          </li>
             <li class="nav-item">
            <a class="btn"> <img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png">
            </a>
          </li>
             <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png">
            </a>
          </li>
        </ul>
      </nav>

Ответы [ 3 ]

1 голос
/ 09 января 2020

Я не знаю, понимаю ли я ваш вопрос, но если мне кажется, у меня есть ответ, вы можете сделать то, что пишите, просто указав в левой и правой "группе" navBar значение c margin, Сначала необходимо установить ширину div , в этом случае каждый div имеет ширину 20% (60% от общего числа), левый div имеет margin-right 20%, а затем правую У поля div осталось 20%, чтобы полностью центрировать все, вам нужно установить div-text-align to center, Мой код можно запустить, просто нажав на фрагмент кода запуска ниже :

.navBar {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    background: #ccc;
    width: 100%;
    padding: 5px 0;
}

.navBar div {
    width: 20%;
    text-align: center;
}

.navBar div a  {
    margin: 0 4px;
    padding: 0 4px;;
    background: rgb(0, 0, 0);
    color: #fff;
    text-decoration: none;
}



.left {
    margin-right: 20%;
}

.right {
    margin-left: 20%;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="main.css">
</head>

<body>
    <div class="navBar">
        <div class="left">
            <a class="btn" href="#">1</a>
            <a class="btn" href="#">2</a>
            <a class="btn" href="#">3</a>
        </div>

        <div class="center">
            <a href="#" class="btn">4</a>
            <a href="#" class="btn">5</a>
            <a href="#" class="btn">6</a>
        </div>

        <div class="right">
            <a href="#" class="btn">7</a>
            <a href="#" class="btn">8</a>
            <a href="#" class="btn">9</a>
        </div>
    </div>
</body>
</html>

Для фиксации navBar вверху я использовал «position: fixed», но даже «position: sticky» - это хорошо.

1 голос
/ 09 января 2020

.topfixed{
    position: sticky !important;
    top: 0;
    z-index: 10;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar nabBarContainer topfixed">
        <ul class="nav divBtn">
          <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png"></a>
          </li>   
        </ul>
        <ul class="nav justify-content-center divBtn">
          <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png"></a>
          </li>   
        </ul>
        <ul class="nav justify-content-end divBtn">
          
             <li class="nav-item">
            <a class="btn"><img style="width:45px; height:45px" src="https://cdn3.iconfinder.com/data/icons/2018-social-media-logotypes/1000/2018_social_media_popular_app_logo_reddit-128.png">
            </a>
          </li>
        </ul>
      </nav>
      <div style="height:1000px;"></div>
  1. Чтобы исправить заголовок фургона .. вы можете добавить класс ниже:

HTML

<nav class="navbar nabBarContainer topfixed">

CSS

.topfixed{
        position: sticky;
    top: 0;
    z-index: 10;
}

Не уверен, какие кнопки вы хотите центрировать .. там 8 кнопок .. как вы пытаетесь выровнять их?

0 голосов
/ 09 января 2020

// Для фиксированной панели навигации:

position: fixed;

// Для центрирования элемента:

margin: 0 auto;

// Для размещения элемента с правой стороны:

position: absolute; right: 0; top: 0;

// Для размещения элемента с левой стороны:

position: absolute; left: 0; top: 0;

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