javascript - 让 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/
谢谢你。
解决方案
在切换按钮(或汉堡菜单)上,我们知道:
- 汉堡菜单的宽度是 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>
推荐阅读
- swiftui - SwiftUI ForEach 的字典识别问题
- .net - 将项目从 VS 2003 升级到 VS 2017
- java - ElasticBeanstalk - 更改 java.security?
- spring - 启用安全性时 Spring Cloud Config 服务器的凭据错误
- teradata - 并发会话的 TDWM 限制违规:对于规则名称“BlockEndUsers”,用户的并发请求限制为 0
- c# - 在 HttpWebRequest 上设置 ContentLength 会给我一个超时错误
- php - 跨多个页面使用用户提供的数据库凭据
- c# - C# 不正确的 Mimetype 返回应用程序/八位字节流
- python - 与python匹配后如何打印行?
- python - 在 Selenium 中定位元素的屏幕位置(使用 Python)