首页 > 解决方案 > 让 Bootstrap 4 导航栏品牌徽标独立于导航栏切换按钮对齐

问题描述

我正在尝试居中对齐导航栏品牌;

对于移动设备,我右对齐的 navbar-toggler 将徽标推离中心。

是否可以让这两个类彼此独立对齐,如果可以,如何?

<nav class="navbar navbar-expand-md navbar-light fixed-top" id="mainNav">
    <a href="index.php#page-top" class="navbar-brand mx-auto PElogo">
        <img src="https://www.theharbourhousehotel.co.uk/img/LOGO-HH-PNG.png" alt="Harbour House Hotel Logo" title="Harbour House Hotel">
        <h1>Harbour House Hotel</h1>
        <h2>Portpatrick</h2>
    </a>

    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#HHnavbar" aria-controls="HHnavbar" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div id="HHnavbar" class="navbar-collapse collapse">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#About">About</a></li>
            <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#Rooms">Rooms</a></li>
        </ul>
    </div>
</nav>

JS Fiddle 在这里: https ://jsfiddle.net/nathonjones/va9g03tj/3/

谢谢你。

标签: javascriptcssbootstrap-4hamburger-menu

解决方案


在切换按钮(或汉堡菜单)上,我们知道:

  • 汉堡菜单的宽度是 30px
  • 左右各有 12px 的内边距
  • 左/右边框各 1 px

所以...如果我们添加这些 30px + 2*(12px) + 2*(1px) = 56px...添加 56px 左侧的填充将确保我们的品牌始终处于导航的“真实”中间。 .

下面的工作片段

.navbar-brand img {
  width: 90px;
}

.PElogo {
  color: #000;
  text-align: center;
  text-transform: uppercase;
  margin-top: 30px;
  padding-left: 56px !important;
}

.PElogo img {
  width: 90px;
}

.PElogo h1 {
  font-size: 1.1rem;
  margin: .5rem 0 0;
}

.PElogo h2 {
  font-size: .675rem;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>

<body>
  <nav class="navbar navbar-expand-md navbar-light fixed-top" id="mainNav">
    <a href="index.php#page-top" class="navbar-brand mx-auto PElogo">
      <img src="https://www.theharbourhousehotel.co.uk/img/LOGO-HH-PNG.png" alt="Harbour House Hotel Logo" title="Harbour House Hotel">
      <h1>Harbour House Hotel</h1>
      <h2>Portpatrick</h2>
    </a>

    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#HHnavbar" aria-controls="HHnavbar" aria-expanded="false" aria-label="Toggle navigation">
			<span class="navbar-toggler-icon"></span>
		</button>

    <div id="HHnavbar" class="navbar-collapse collapse">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#About">About</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#Rooms">Rooms</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#Restaurant">Restaurant</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#Attractions">Attractions</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#EventsNewsOffers">News</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#Location">Location</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#Gallery">Gallery</a></li>
        <li class="nav-item"><a class="nav-link js-scroll-trigger" href="contact-harbour-house-hotel.php">Contact</a></li>
      </ul>
    </div>
  </nav>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script>
</body>

</html>


推荐阅读