css - 我怎样才能重新排序基于屏幕大小在导航栏中水平对齐的元素(引导程序)
问题描述
在我的 html 页面中,元素已正确固定在导航栏中。
1 2 3 4 5 6 7
当屏幕较小时,元素是垂直的
1
2
3
4
5
6
我设法减小了尺寸,navbar
但元素是垂直的。我需要以小字体li
水平对齐的元素。navbar
下面给出了我用于减少导航栏的代码。
@media only screen and (min-width: 400px) and (max-width: 992px) {
.navbar {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
height: 54px
}
.navbar .nav ul {
padding-top: 5px !important;
padding-bottom: 0 !important;
height: 30px;
font-size: smaller;
display: inline;
}
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<a class="navbar-brand">
<img src="https://via.placeholder.com/40x35" width="40" height="35" class="d-inline-block align-top">
<span class="navbar-brand mb-1 h1">Byte Program</span>
</a>
<div class="nav navbar-nav ">
<ul class="navbar-nav mx-3 mt-3 ">
<li class="nav-item ">
<p class="nav-text ">1 </p>
</li>
<li class="nav-item">
<p class="nav-text ">2</p>
</li>
<li class="nav-item">
<p class="nav-text ">3</p>
</li>
<li class="nav-item">
<p class="nav-text "> 4</p>
</li>
</ul>
</div>
</nav>
解决方案
您遇到了一些问题,主要是没有覆盖 Bootstrap 基本样式。
- 默认情况下,
.navbar .nav
是一个弹性项目,在较小的屏幕上,它flex-direction
是column
- 所以我将它设置为row
.navbar .nav ul
也是一个 flex 父级,并且 flex 方向设置为column
,所以我将其设置为 row。而且由于ul
不够具体,无法覆盖引导程序样式,因此我添加了类选择器ul.navbar-nav
,因此它比引导程序更具体。ul.navbar-nav
也是一个弹性孩子,所以你可以设置它的flex
属性(flex: 1 1 100%
)。- 我还在
margin
你的li
项目中添加了一些,这样你就可以看到它工作了。 min-width: 400px
除非您有不同的风格,否则您没有理由这样做。我在示例中将其删除,但您当然可以将其放回原处。
@media (max-width: 992px) {
.navbar {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
height: 54px
}
.navbar .nav {
flex-direction: row;
}
.navbar .nav ul.navbar-nav {
padding-top: 5px !important;
padding-bottom: 0 !important;
height: 30px;
font-size: smaller;
flex: 1 1 100%;
flex-direction: row;
justify-content: flex-end;
}
.navbar .nav ul.navbar-nav li {
margin: 0 10px;
}
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<a class="navbar-brand">
<img src="https://via.placeholder.com/40x35" width="40" height="35" class="d-inline-block align-top">
<span class="navbar-brand mb-1 h1">Byte Program</span>
</a>
<div class="nav navbar-nav ">
<ul class="navbar-nav mx-3 mt-3 ">
<li class="nav-item ">
<p class="nav-text ">1 </p>
</li>
<li class="nav-item">
<p class="nav-text ">2</p>
</li>
<li class="nav-item">
<p class="nav-text ">3</p>
</li>
<li class="nav-item">
<p class="nav-text "> 4</p>
</li>
</ul>
</div>
</nav>
推荐阅读
- go - 纹理如何在OpenGL3中显示为颜色而不是灰度?
- javascript - 当我尝试创建一个供事件侦听器读取的元素时,控制台抛出未定义
- visual-studio - Visual Studio 2019 社区版 16.7.0 挂起
- python - 如何在python tkinter中向复选框添加垂直滚动条?
- php - Laravel 查询生成器仅获取具有特定进度的项目
- java - 如何根据camunda中的processInstanceId获取taskId
- java - 从java发送重定向到Angular 8
- visual-studio - 在 Visual Studio 2019 上,如何在 C++ Debug 程序中调试纯 C++ 和 CLI C++?
- python - 从字典列表中添加新列
- r - 从 R Shiny 下载 matplotlib 绘图