Bootstrap 4导航栏添加大图片后底部对齐问题求助
要实现品牌文本、导航链接和图片底部对齐,且不依赖固定的padding/margin(适配图片尺寸变化),可以利用Bootstrap 4内置的flexbox工具类来实现,完全符合你的需求:
修改步骤:
- 给
<nav>标签添加align-items-end类,让navbar容器内的所有直接子元素(品牌、切换按钮、导航菜单)垂直对齐到底部 - 给
<a class="navbar-brand">添加d-flex align-items-end类,确保品牌文本和图片本身也底部对齐
修改后的完整代码:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content=""> <title>Navbar Template for Bootstrap</title> <!-- Bootstrap core CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous"> </head> <body> <nav class="navbar navbar-expand navbar-dark bg-dark align-items-end"> <a class="navbar-brand d-flex align-items-end" href="#"><img src="https://cdn.stocksnap.io/img-thumbs/960w/DOHH1Q2PPE.jpg" height="240px"> Test</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExample02" aria-controls="navbarsExample02" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarsExample02"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> </ul> <form class="form-inline my-2 my-md-0"> <input class="form-control" type="text" placeholder="Search"> </form> </div> </nav> <main role="main"> <div class="jumbotron"> <div class="col-sm-8 mx-auto"> <h1>Navbar examples</h1> <p>This example is a quick exercise to illustrate how the navbar and its contents work. Some navbars extend the width of the viewport, others are confined within a <code>.container</code>. For positioning of navbars, checkout the <a href="../navbar-top/">top</a> and <a href="../navbar-top-fixed/">fixed top</a> examples.</p> <p>At the smallest breakpoint, the collapse plugin is used to hide the links and show a menu button to toggle the collapsed content.</p> <p> <a class="btn btn-primary" href="../../components/navbar/" role="button">View navbar docs »</a> </p> </div> </div> </main> <!-- Bootstrap core JavaScript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/js/bootstrap.min.js" integrity="sha384-a5N7Y/aK3qNeh15eJKGWxsqtnX/wWdSZSKp+81YjTmS15nvnvxKHuzaWwXHDli+4" crossorigin="anonymous"></script> </body> </html>
原理说明:
Bootstrap 4的navbar本身就是一个flex容器,默认的align-items:center会让所有子元素垂直居中。添加align-items-end后,容器内的元素会自动对齐到容器的底部,完全适配图片的高度变化——不管图片是240px还是随设备调整为其他尺寸,导航元素都会始终跟图片底部对齐,不需要手动设置任何固定的margin或padding。
另外,给navbar-brand添加d-flex align-items-end是为了确保品牌文本和图片本身也保持底部对齐,避免文本默认跟图片中线对齐的问题。
内容的提问来源于stack exchange,提问作者Valar Morghulis
相关产品推荐
相关产品推荐

