Bootstrap 4 |无法将搜索框与自定义导航栏的项目保持在同一行
Bootstrap 4 | Can't keep a search box on the same line with a custom navbar's items
我使用 Bootstrap 4 的网格制作了自定义导航栏。此导航栏分为两部分:左侧部分包含导航栏项,右侧部分包含搜索框。
问题是搜索框无论如何都不会停留在我的导航栏的右侧。它总是位于导航栏项目下方(左侧部分)。
这是我的 HTML & CSS 代码:
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
</div>
<div class="custom-navbar-search col-4">
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
如何正确地将搜索框与导航栏的项目放在同一行?
P.S.:
"input" 周围没有标签,因为我尝试过使用它们和不使用它们,两种方式都不起作用,所以自上次尝试以来我没有更改代码。
P.P.S.:
在发布我自己的问题之前,我搜索了 Google 和 Whosebug。 None 的建议答案对我有帮助。大多数人建议导航栏有太多项目,所以它无法容纳搜索框,而是将其移到下一行,但我认为这很愚蠢,因为即使我的导航栏中只有 2 个项目,我也尝试过。
这是你想要的吗?
如果要将搜索栏拉到右侧,请添加:
class="float-right"
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
搜索框不会停留在链接的右侧,因为 custom-navbar-buttons 和 custom-navbar-search 都是块级元素。所以他们都倾向于安排在彼此的顶部占据他们 parent div 的整个宽度,即 custom-navbar.
您需要将它们都设为内联。
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
display:inline-block;
}
.custom-navbar-search {
display: inline-block;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
</div>
<div class="custom-navbar-search col-4">
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
或者您可以简单地使用 flexbox,它可以让您更好地控制导航栏。
.custom-navbar {
display:flex;
flex-flow: row nowrap;
align-items: center;
justify-content: space-between;
}
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
</div>
<div class="custom-navbar-search col-4">
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
我使用 Bootstrap 4 的网格制作了自定义导航栏。此导航栏分为两部分:左侧部分包含导航栏项,右侧部分包含搜索框。 问题是搜索框无论如何都不会停留在我的导航栏的右侧。它总是位于导航栏项目下方(左侧部分)。
这是我的 HTML & CSS 代码:
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
</div>
<div class="custom-navbar-search col-4">
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
如何正确地将搜索框与导航栏的项目放在同一行?
P.S.: "input" 周围没有标签,因为我尝试过使用它们和不使用它们,两种方式都不起作用,所以自上次尝试以来我没有更改代码。
P.P.S.: 在发布我自己的问题之前,我搜索了 Google 和 Whosebug。 None 的建议答案对我有帮助。大多数人建议导航栏有太多项目,所以它无法容纳搜索框,而是将其移到下一行,但我认为这很愚蠢,因为即使我的导航栏中只有 2 个项目,我也尝试过。
这是你想要的吗?
如果要将搜索栏拉到右侧,请添加:
class="float-right"
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
搜索框不会停留在链接的右侧,因为 custom-navbar-buttons 和 custom-navbar-search 都是块级元素。所以他们都倾向于安排在彼此的顶部占据他们 parent div 的整个宽度,即 custom-navbar.
您需要将它们都设为内联。
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
display:inline-block;
}
.custom-navbar-search {
display: inline-block;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
</div>
<div class="custom-navbar-search col-4">
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>
或者您可以简单地使用 flexbox,它可以让您更好地控制导航栏。
.custom-navbar {
display:flex;
flex-flow: row nowrap;
align-items: center;
justify-content: space-between;
}
.custom-navbar-buttons p {
display: inline;
color: black;
margin-right: 0.4rem;
}
.custom-navbar-buttons {
padding-top: 0.4rem;
padding-bottom: 0.4rem;
}
<body>
<div class="container">
<div class="row">
<div class="custom-navbar col-12 bg-success">
<div class="custom-navbar-buttons col-8">
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
<p>Button</p>
</div>
<div class="custom-navbar-search col-4">
<input type="text" name="search" placeholder="search this site">
</div>
</div>
</div>
</div>
</body>