Bootstrap导航栏切换按钮点击后偏移问题求助
解决Bootstrap导航栏切换按钮点击后偏移左侧的问题
问题根源
你的代码中,.container-fluid默认采用Flex布局,点击切换按钮展开菜单后,原本折叠的.navbar-collapse会从隐藏变为显示并占据容器内的可用空间,导致切换按钮所在容器被挤压到左侧,破坏了原本的居中效果。
修复方案
直接给navbar-toggler按钮添加Bootstrap内置的mx-auto类,无需额外嵌套容器,即可让按钮始终保持居中,不受菜单展开/折叠状态影响:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>My resumé</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> <link href="https://fonts.googleapis.com/css2?family=Anonymous+Pro&family=Lato&display=swap" rel="stylesheet"> <script src="https://kit.fontawesome.com/c4df5125eb.js" crossorigin="anonymous"></script> <style> #navbar-center { display: flex; justify-content: center; align-items: center; } .card { margin: 2vh 1rem; } footer { position: fixed; top: 0; padding-left: 90vw; } </style> </head> <body> </header> <div id="navbar-center"> <nav id="navbar" class="navbar navbar-expand-lg"> <div class="container-fluid"> <!-- 直接给按钮加mx-auto实现居中 --> <button class="navbar-toggler mx-auto" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse justify-content-center" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link btn btn-primary" href="#executive-summary">Executive Summary</a> </li> <li class="nav-item"> <a class="nav-link btn btn-primary" href="#technical-skillset">Skillset</a> </li> </ul> </div> </div> </nav> </div> <div id="executive-summary"></div> <div id="technical-skillset"></div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> </body> </html>
补充说明
mx-auto是Bootstrap内置类,作用是给元素添加左右自动外边距,在Flex容器中会自动居中元素。- 移除了原本包裹按钮的
d-flex justify-content-center容器,避免Flex布局冲突导致的偏移问题。
内容的提问来源于stack exchange,提问作者Dennis Mariegaard Jensen
相关产品推荐
相关产品推荐

