javascript - 让 Bootstrap 4 navbar-brand 标志独立于 navbar-toggler 按钮对齐

标签 javascript css bootstrap-4 hamburger-menu

我正在尝试居中对齐 navbar-brand;

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

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

<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/

谢谢。

最佳答案

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

  • 汉堡菜单的宽度为 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>

关于javascript - 让 Bootstrap 4 navbar-brand 标志独立于 navbar-toggler 按钮对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485876/

相关文章:

css - 显示具有 css 渐变效果的图像

css - 正方形图像,Bootstrap 4

javascript - datetimepicker 无法与 bootstrap 4 一起使用?

html - 隐藏的 div 使我的网站太长

javascript - 将 div 的宽度设置为与其最近的兄弟相同

html - 桌面右侧位置 div 在移动 View 中显示在左侧位置

javascript - 如何从源 json 对象生成嵌套的对象数组

javascript - Jquery ui 旋转图像调整大小问题

javascript - 正则表达式不匹配句子中的特定文本?

javascript - jQuery Gallery 将在 Firefox 和 Chrome 上本地显示,但无法在线工作