导航栏中间有徽标

时间:2018-05-25 12:10:42

标签: html css3 bootstrap-4 navbar

我有一个导航栏,中间有一个徽标,两侧都有链接。如何防止徽标向下推(添加边距/填充)?基本上......导航栏背景高度不应该扩展。我希望徽标位于顶部并重叠。

如果我要使徽标定位绝对可能解决问题,但我需要这只发生在容器本身内。不知道该怎么做。目前我只使用 li 标记,其中包含 img 标记。这种方式没有hacky解决方法。我正在使用你可能已经看过的Bootstrap 4。

Navbar with logo

    <nav class="navbar fixed-top navbar-expand-md justify-content-between">
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#collapsingNavbar">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="navbar-collapse collapse justify-content-center" id="collapsingNavbar">
            <ul class="navbar-nav">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Link <span class="sr-only">Home</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#" data-toggle="collapse">Link</a>
                </li>
                <li class="nav-item">
                    <img src="img/logo-placeholder.png" id="logo"></img>
                </li>
                <li class="nav-item active">
                    <a class="nav-link" href="#">Link <span class="sr-only">Home</span></a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#" data-toggle="collapse">Link</a>
                </li>
            </ul>
        </div>
    </nav>

3 个答案:

答案 0 :(得分:0)

你可以给.navbar-nav align-items: center;然后它会在中间

加上你的img不应该有结束标记从

更改它
<img src="img/logo-placeholder.png" id="logo"></img>

<img src="img/logo-placeholder.png" id="logo">

已更新

据我所知image

只需定义2 ul 每个图片在中间

样式.navbar-nav为其提供以下样式

  width: 100%;
  background-color: #eee;

然后你可以使用ul将它们与

放在一起
.right {
  justify-content: flex-start;
}

.left {
  justify-content: flex-end;
}
.navbar-nav {
  align-items: center;
  width: 100%;
  background-color: #eee;
}

.right {
  justify-content: flex-start;
}

.left {
  justify-content: flex-end;
}

您可以在fiddle

上查看

答案 1 :(得分:0)

HI到您的导航栏,您可以给出样式.navbar{text-align:center;},因为如果您使用文本对齐中心,它也会将您的图像对齐到中心。

答案 2 :(得分:0)

add this in css

#navbar-primary .navbar-nav { 
//  background: #ededed;
  width: 100%;
  text-align: center;
  > li {
    display: inline-block;
    float: none;
    > a {
      padding-left: 30px;
      padding-right: 30px;
    }
  }
}

HTML file
<header role="banner">
<nav id="navbar-primary" class="navbar" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-primary-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <div class="collapse navbar-collapse" id="navbar-primary-collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#"><img id="logo-navbar-middle" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/32877/logo-thing.png" width="200" alt="Logo Thing main logo"></a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
</header><!-- header role="banner" -->