html - 使用 justify-content: space-between; 在嵌套的弹性盒中
问题描述
我正在尝试在标题标签上应用 flexbox,并在标题标签(嵌套的 flexbox )内的ul标签上应用 flexbox ,用于外部 flexbox justify-content: space-between; 被使用并且它工作正常,但是当使用justify-content: space-between;"对于内部 flexbox 也没有做任何事情,我希望它能够将每个导航栏列表项分开,并且在它们之间有一些空格,就像它所做的那样外部的 flexbox,可以使用margin来实现,但为什么要使用justify-content: space-between;" 不像外部弹性盒那样工作?
JSX
import { NavLink } from "react-router-dom";
import classes from "./Navbar.module.css";
function Navbar() {
return (
<header className={classes.header}>
<div>Logo</div>
<nav className={classes.nav}>
<ul>
<li>
<NavLink to="./">Home</NavLink>
</li>
<li>
<NavLink to="./">News</NavLink>
</li>
<li>
<NavLink to="./">Contact</NavLink>
</li>
<li>
<NavLink to="./">About</NavLink>
</li>
</ul>
</nav>
</header>
);
}
export default Navbar;
CSS
header {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
height: 5rem;
padding: 0 10%;
background-color: aquamarine;
}
nav ul {
list-style: none;
display: flex;
justify-content: space-between;
}
nav a {
text-decoration: none;
}
解决方案
那是因为没有空间可供导航链接占用。父 flex 将可用空间划分为两个项目相等。所以要实现你想要的,你需要定义每个部分的空间。
实现这一目标的一种方法是使用flex-grow
.
header {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
height: 5rem;
padding: 0 10%;
background-color: aquamarine;
}
// here I give the logo equal size of space as the nav
// you can change the values whatever you desire.
div {
flex-grow: 4 //div for logo
}
nav {
flex-grow: 4
}
nav ul {
list-style: none;
display: flex;
justify-content: space-between;
}
nav a {
text-decoration: none;
}
推荐阅读
- asp.net-mvc - 无法通过用户名登录
- database-design - 微服务架构中模型之间的松散耦合
- java - 自定义键盘上的android自动完成下拉覆盖
- android - (未知 url)的 Http 失败响应:android 上的 0 未知错误
- python - 在终端窗口中停止 logcat 的脚本
- c# - C# 控制台快捷方式 - 如何禁用?
- vba - 帮助提高循环效率
- ms-mpi - MS-MPI v9.0.1 是哪个版本的 MPI
- nginx - Kubernetes nginx 控制器,没有到默认后端的流量:400s 应该是 404s
- html - 设置一个
的背景图像,跨浏览器问题?