首页 > 解决方案 > 导航栏上的按钮导致导航栏高度增加

问题描述

我使用 Bootstrap 在导航栏上参考以下示例:

https://www.w3schools.com/bootstrap4/tryit.asp?filename=trybs_navbar_form&stacked=h

复制 HTML,我把它放在我的 JSP 页面中。以下是最终的 HTML:

<html>

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<link href="/webjars/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
<script type="text/javascript" src="/webjars/bootstrap/js/bootstrap.bundle.min.js"></script>

<title>2</title>
</head>

<body>

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
  <form class="form-inline" action="/action_page.php">
    <input class="form-control mr-sm-2" type="text" placeholder="Search">
    <button class="btn btn-success" type="submit">Search</button>
  </form>
</nav>
<br>

<div class="container">
  <h3>Navbar Forms</h3>
  <p>Use the .form-inline class to align form elements side by side inside the navbar.</p>
</div>

</body>
</html>

在 IE 和 Google Chrome 上,导航栏的高度都大于示例中的高度,控件下方有额外的空格,如下所示。我发现这是由于按钮。如果按钮被移除,导航栏的高度将与示例中的相同。什么可能是根本原因,我该如何解决?我正在使用引导程序 4.4。

我得到了什么

标签: htmlcssbootstrap-4

解决方案


这是因为浏览器默认的 CSS 也称为用户代理样式表。

在此处输入图像描述 我发现如果你使用<!DOCTYPE html>这个空间被删除,因为 HTML5 的用户代理样式表中表单元素的下边距是0px;

如果我不使用<!DOCTYPE html>它,请考虑 HTML4 的用户代理样式表,其中表单元素的下边距为1em.

所以现在选择是你的,如果你必须使用<!DOCTYPE html>或不使用。

否则,另一种解决方案是在表单元素中使用它是为任何元素class="mb-0"设置的 bootstrap-4 类。margin-bottom: 0px;


推荐阅读