html - 我想在左侧设置徽标,在右侧设置链接,但浮动在导航标签上不起作用......为什么?
问题描述
我使用此代码进行导航,并使用引导程序进行练习
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>welcome to your site</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" ></script>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#"><img src="img/mehrlogo.png" width="120" alt=""></a>
<button class="navbar-toggler " type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
</nav>
</body>
</html>
如何在右侧或左侧设置徽标,在另一侧设置链接?
默认情况下,链接和徽标彼此靠近,并且向左或向右浮动不起作用 - 我该怎么办?
解决方案
用于定位其元素的.navbar
用途。display: flex
这意味着您可以通过更改flex-direction
and justify-content
on重新定位或排列它们,.navbar
但还要注意flex-grow
,flex-shrink
和flex-basis
. 的每个直接子级上设置的左右边距.navbar
。
从左到右开始flex-direction: row
(默认)。从右到左:flex-direction: row-reverse
。
在重新排列它们之间和周围的空间方面,对于上述任何一个,更改justify-content
为space-between
(默认)、space-evenly
、flex-end
、flex-start
、中的任何一个center
。
这是一个以相反顺序且均匀分布的示例:
nav.navbar {
flex-direction: row-reverse;
justify-content: space-evenly;
}
div.navbar-collapse {
flex-grow: 0;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">LOGO HERE</a>
<button class="navbar-toggler " type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
</nav>
注意事项:在父级或任何子级上设置的更多属性会影响它们的显示行为。一些最常见的:
- 设置
margin: auto
在任何孩子身上都会偷走所有积极的空间并将其分配给那个特定justify-content
的差距,看起来它不起作用。它正在工作,但它准确地分配了0
空间。如果要将可用空间划分为几个选定的间隙,请margin:auto
使用任何相邻元素在每个间隙中放置 a。 - 设置
flex-grow
,flex-shrink
或flex-basis
任何孩子都会影响他们的大小,从而影响可用空间的分布。这里的一个子注释是,默认情况下,在某些响应时间间隔.navbar-collapse
上flex-grow: 1
,您需要将其设置0
为能够重新分配可用空间。否则没有可用空间。
推荐阅读
- sql - 如何在 postgresql 中选择数组?
- jpa - 在 H2DB 中使用 @DataJpaTest 时发生太多 DDL
- apache-kafka - 微服务数据库的 Debezium 最佳实践(多数据库实例)
- python - 自定义对象列表的 JSON 编码/解码
- laravel - foreach 只返回 1 个值 Laravel
- python - 由 wheel 构建的私有 Python 包出现错误 .whl is not a supported wheel on this platform
- python - 如何从不同文件的子类中访问超类?
- json - AWS transcribe- 错误请求:在“transcriptionJobName”处检测到错误未能满足约束:
- android - Android 从 AsyncTask kotlin 中的 doInBackGround() 获取结果
- reactjs - 在前一行我正在做 setCurrentPage(value),在下一行:console.log(CurrentPage, value),CurrentPage 和 value 是不同的。为什么?