Bootstrap 4 : 当 Logo 增加导航栏高度时垂直对齐导航链接
Bootstrap 4 : Vertically Align Navigation Links when Logo Increases the Navbar Height
我是 Bootstrap 4 框架的新手,但即使在阅读了所有文档和 Whosebug 上所有现有的 B4 问题之后,我仍然有点不知所措。
在我的导航栏中,我插入了一个高度和宽度均为 50px 的 SVG 徽标。这会自动使导航栏更高。我没有为此调整任何 CSS,只是徽标迫使导航栏高度增加。
这是我的 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
<title>@yield('title')</title>
<link rel="import" href="elements.html">
<link rel="stylesheet" href="/styles/app.css">
</head>
<body>
<header class="navbar navbar-light navbar-fixed-top bd-faded">
<div class="clearfix hidden-sm-up">
<button class="navbar-toggler pull-right" data-toggle="collapse" data-target="#navbar">
☰
</button>
<a href="/" class="navbar-brand">
<img src="/images/brand.svg" alt="Logo">
<span>Bootstrap</span>
</a>
</div>
<div class="collapse navbar-toggleable-xs" id="navbar">
<a href="/" class="navbar-brand">
<img src="/images/brand.svg" alt="Logo">
<span>Bootstrap</span>
</a>
<nav class="nav navbar-nav">
<div class="nav-item nav-link"><a href="#">Link 1</a></div>
<div class="nav-item nav-link"><a href="#">Link 2</a></div>
<div class="nav-item nav-link"><a href="#">Link 3</a></div>
</nav>
</div>
</header>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="/scripts/vendor.js"></script>
<script src="/scripts/bootstrap.js"></script>
<script src="/scripts/app.js"></script>
<script src="/components/webcomponentsjs/webcomponents.js"></script>
</body>
</html>
这是我的习惯 CSS:
.navbar-brand {
font-size: 22px;
img {
display: inline-block;
margin-right: 8px;
width: 50px;
height: 50px;
}
}
我希望 link1、link2 和 link3 的导航链接与 Bootstrap[ 的标题垂直对齐=27=].
提前致谢
试试这个。
<header class="navbar navbar-default navbar-top">
<div class="container">
<div class="navbar-header">
<!-- Stat Toggle Nav Link For Mobiles -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<i class="fa fa-bars"></i>
</button>
<!-- End Toggle Nav Link For Mobiles -->
<a class="navbar-brand" href="#">
<h3>Bootstrap</h3>
</a>
</div>
<div class="navbar-collapse collapse navbar-right">
<!-- Start Navigation List -->
<ul class="nav navbar-nav">
<li> <a href="#">Link 1</a> </li>
<li><a href="#">Link 2</a> </li>
<li><a href="#">Link 3</a></li>
</ul>
<!-- End Navigation List -->
</div>
</div>
</header>
我认为您可以删除链接的顶部和底部填充,并为其添加高度和行高。同时从 .navbar-brand
.
中删除填充
只需添加此 CSS:
.navbar-brand {
padding: 0;
}
.navbar-nav .nav-link {
padding-top: 0;
padding-bottom: 0;
height: 50px;
line-height: 50px;
}
CODEPEN
我 运行 遇到类似的情况,我想垂直对齐我的 nav-items。
第 1 步: 将 classes d-lg-flex align-items-center
添加到您的 .navbar-nav
parent 元素。这确保您可以使用 flex-utilities
对齐 child 个项目
第 2 步: 将 h-100
class 添加到每个 child nav-item
。 Nav-item 没有我所知道的定义高度。使用 nav-item
定义的高度,它将遵循上面 align-items-center
.
设置的弹性规则
第 3 步:请检查我代码笔中的外部链接,因为导航栏需要额外的 js。
这是一个垂直居中的工作示例nav-items
https://codepen.io/b3bold/pen/rvMwzN
<nav class="navbar navbar-expand-md p-3 mb-2 navbar-light bg-white text-dark">
<a class="navbar-brand" href="#">
<img src="https://i.stack.imgur.com/snRuy.jpg" />
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-auto text-center w-100 justify-content-between ml-lg-0 d-lg-flex align-items-center">
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
<div class="nav-item h-100"><a class="nav-link"href="#">Some Really Long Link as an Example of Vertical </a></div>
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
</ul>
</div>
</nav>
我正在使用 Bootstrap 4.5.0。对我来说,下面的技巧起作用了(除了上面提到的@Alexander Romero 之外,我还必须添加 mt-2):
<li class="nav-item dropdown align-items-center mt-2"><select class="dropdown" id="changeAccentColor">
<option value="">Theme</option>
<option value="">Default</option>
<option value="#F5FFFA">Mint</option>
<option value="#32CD32">Lime</option>
<option value="#008080">Teal</option>
<option value="#DCDCDC">Gray</option>
<option value="#FFC0CB">Pink</option>
<option value="#F5F5F5">Smoky</option>
</select></li>
现在,即使我放大了 400-500%,我的自定义下拉菜单仍然与我为导航设置的高度垂直对齐。它完美无瑕。希望有人会发现它对满足他们的需要有用。
我是 Bootstrap 4 框架的新手,但即使在阅读了所有文档和 Whosebug 上所有现有的 B4 问题之后,我仍然有点不知所措。
在我的导航栏中,我插入了一个高度和宽度均为 50px 的 SVG 徽标。这会自动使导航栏更高。我没有为此调整任何 CSS,只是徽标迫使导航栏高度增加。
这是我的 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0">
<title>@yield('title')</title>
<link rel="import" href="elements.html">
<link rel="stylesheet" href="/styles/app.css">
</head>
<body>
<header class="navbar navbar-light navbar-fixed-top bd-faded">
<div class="clearfix hidden-sm-up">
<button class="navbar-toggler pull-right" data-toggle="collapse" data-target="#navbar">
☰
</button>
<a href="/" class="navbar-brand">
<img src="/images/brand.svg" alt="Logo">
<span>Bootstrap</span>
</a>
</div>
<div class="collapse navbar-toggleable-xs" id="navbar">
<a href="/" class="navbar-brand">
<img src="/images/brand.svg" alt="Logo">
<span>Bootstrap</span>
</a>
<nav class="nav navbar-nav">
<div class="nav-item nav-link"><a href="#">Link 1</a></div>
<div class="nav-item nav-link"><a href="#">Link 2</a></div>
<div class="nav-item nav-link"><a href="#">Link 3</a></div>
</nav>
</div>
</header>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="/scripts/vendor.js"></script>
<script src="/scripts/bootstrap.js"></script>
<script src="/scripts/app.js"></script>
<script src="/components/webcomponentsjs/webcomponents.js"></script>
</body>
</html>
这是我的习惯 CSS:
.navbar-brand {
font-size: 22px;
img {
display: inline-block;
margin-right: 8px;
width: 50px;
height: 50px;
}
}
我希望 link1、link2 和 link3 的导航链接与 Bootstrap[ 的标题垂直对齐=27=].
提前致谢
试试这个。
<header class="navbar navbar-default navbar-top">
<div class="container">
<div class="navbar-header">
<!-- Stat Toggle Nav Link For Mobiles -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<i class="fa fa-bars"></i>
</button>
<!-- End Toggle Nav Link For Mobiles -->
<a class="navbar-brand" href="#">
<h3>Bootstrap</h3>
</a>
</div>
<div class="navbar-collapse collapse navbar-right">
<!-- Start Navigation List -->
<ul class="nav navbar-nav">
<li> <a href="#">Link 1</a> </li>
<li><a href="#">Link 2</a> </li>
<li><a href="#">Link 3</a></li>
</ul>
<!-- End Navigation List -->
</div>
</div>
</header>
我认为您可以删除链接的顶部和底部填充,并为其添加高度和行高。同时从 .navbar-brand
.
只需添加此 CSS:
.navbar-brand {
padding: 0;
}
.navbar-nav .nav-link {
padding-top: 0;
padding-bottom: 0;
height: 50px;
line-height: 50px;
}
CODEPEN
我 运行 遇到类似的情况,我想垂直对齐我的 nav-items。
第 1 步: 将 classes d-lg-flex align-items-center
添加到您的 .navbar-nav
parent 元素。这确保您可以使用 flex-utilities
第 2 步: 将 h-100
class 添加到每个 child nav-item
。 Nav-item 没有我所知道的定义高度。使用 nav-item
定义的高度,它将遵循上面 align-items-center
.
第 3 步:请检查我代码笔中的外部链接,因为导航栏需要额外的 js。
这是一个垂直居中的工作示例nav-items https://codepen.io/b3bold/pen/rvMwzN
<nav class="navbar navbar-expand-md p-3 mb-2 navbar-light bg-white text-dark">
<a class="navbar-brand" href="#">
<img src="https://i.stack.imgur.com/snRuy.jpg" />
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ml-auto text-center w-100 justify-content-between ml-lg-0 d-lg-flex align-items-center">
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
<div class="nav-item h-100"><a class="nav-link"href="#">Some Really Long Link as an Example of Vertical </a></div>
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
<div class="nav-item h-100"><a class="nav-link" href="#">RandomLink</a></div>
</ul>
</div>
</nav>
我正在使用 Bootstrap 4.5.0。对我来说,下面的技巧起作用了(除了上面提到的@Alexander Romero 之外,我还必须添加 mt-2):
<li class="nav-item dropdown align-items-center mt-2"><select class="dropdown" id="changeAccentColor">
<option value="">Theme</option>
<option value="">Default</option>
<option value="#F5FFFA">Mint</option>
<option value="#32CD32">Lime</option>
<option value="#008080">Teal</option>
<option value="#DCDCDC">Gray</option>
<option value="#FFC0CB">Pink</option>
<option value="#F5F5F5">Smoky</option>
</select></li>
现在,即使我放大了 400-500%,我的自定义下拉菜单仍然与我为导航设置的高度垂直对齐。它完美无瑕。希望有人会发现它对满足他们的需要有用。