导航栏中间有徽标[复制]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导航栏中间有徽标[复制]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

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

如果我要使徽标定位绝对可能解决问题,但我需要这只发生在容器本身内。不知道该怎么做。目前我只使用里面带有img标签的li标签。这种方式没有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>
答案

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

加上你的img不应该有结束标记来改变它

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

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

UPDATED

我从你的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上查看

另一答案

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

另一答案
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" -->

以上是关于导航栏中间有徽标[复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Bootstrap 导航栏中居中品牌徽标

在 Bootstraps 导航栏中居中图像/徽标?

在导航中实现垂直对齐徽标[重复]

在浮动导航栏中调整徽标大小

为啥导航栏徽标不显示在主视图中

定位徽标和导航栏时遇到问题