html - 我必须申请什么CSS来摆脱这个无用的间距?
问题描述
我有一个导航栏,其中包含一些项目,其中 4 个在左侧,一个必须始终在右侧。问题是当我把最后一个词介绍到左边时,他们把一个词放在另一个词上,看起来很糟糕。还有一件事是,当我改变显示器的分辨率时,总是在右边的项目向左移动,几乎触及中间。
一些额外的信息是,这是一个由大学网络平台组成的项目的一部分。它主要使用 SpringBoot 及其库创建,完全用 Java 编写在后端。尽管如此,前端主要是 HTML,当我需要使它看起来不难看时,一些 CSS 和 Javascript 以防动画效果。更不用说 Thymeleaf 框架,这样我就可以与后端正确通信。
我尝试了很多东西,但我不知道如何让它们看起来不错。有人愿意在这件时髦的事情上帮助我吗?我将添加两张图片:
下面的代码来自页面:
#personal-page {
padding-left: 780px;
font-size: 20px;
}
#admin-page {
padding-left: 730px;
font-size: 20px;
}
#assistant-page {
padding-left: 700px;
font-size: 20px;
}
<html>
<head>
<nav class="fixed-top navbar navbar-dark bg-dark navbar-expand">
<a class="navbar-brand" href="https://curs.upb.ro/">
<span class="fa fa-university"></span> E-Learning Platform
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto" id="navi">
<li class="nav-item active">
<a class="nav-link" href="/">Homepage<span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="/menu">Menu Page</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="/admin/students">Students List</a>
</li>
<li class="nav-item">
<a class="nav-link" aria-current="page" href="/admin/camine">Camine Page</a>
</li>
<div th:switch="${isDevAcc}">
<li th:case="'true'" class="nav-item">
<div th:switch="${loggedUsername}">
<a th:case="'iancu'" id="admin-page" class="nav-link fas fa-code" aria-current="page" href="/admin/devAdminPage">
<span> Dev Account :: ADMIN </span>
</a>
<a th:case="'lixi'" id="assistant-page" class="nav-link fas fa-code" aria-current="page" href="/admin/devAdminPage">
<span> Dev Account :: ASISTENT </span>
</a>
</div>
</li>
<li th:case="'false'" class="nav-item" id="personal-page">
<a class="nav-link fas fa-user-secret" aria-current="page" href="#" th:text="${loggedUsername}"></a>
</li>
</div>
</ul>
</div>
</nav>
</head>
<body>
</body>
</html>
解决方案
用于flexbox
水平对齐导航栏:nav ul { display: flex; }
然后你也可以使用:last-child
选择器来应用margin-left: auto;
,它将最后一项推到右边:nav ul li:last-child { margin-left: auto; }
。margin: auto;
在 a 内flex-container
将消耗所有剩余空间。
nav ul {
display: flex;
}
nav ul li:last-child {
margin-left: auto;
}
/* For styling purpose only */
nav ul {
list-style: none;
padding: 5px;
}
nav li {
margin: 0 10px;
}
<nav>
<ul>
<li>E-Learning Plattform</li>
<li>Homepage</li>
<li>Menu Page</li>
<li>Students List</li>
<li>Camine Page</li>
<li>Admin</li>
</ul>
</nav>
推荐阅读
- python - 我的json作为输出字符串而不是python中的int
- postgresql - 比较 postgreSQL 表中的行并保留列中字符串最长的行
- python-3.x - 基于Python中的两个数据框计算总加权分数
- jmeter - 分布式负载测试jmeter
- java - 线程未按顺序存储在集合中
- azure - ARM 模板 - 订阅读者和 Azure 资源参与者角色(然后使用蓝图分配)
- javascript - 反应状态值在本机事件的回调中为空
- javascript - Angular 在运行时创建元素,同时保持样式
- localization - 如何为本地化创建和加载 resource.dll?
- java - 我应该关闭由 ZipOutputStream 包装的 FileOutputStream