除非显示 ul 的要点,否则嵌套的 flexbox 不起作用
Nested flexbox does not work unless bullet points from ul are showing
我正在通过 Colt Steele 在 Udemy 上的网络开发训练营进行类似“Code Along”的练习。
本质上,将 justify-content: space-evenly 添加到 ul { 不会做任何事情; ul 中的元素位于左侧。我尝试的解决方法是注释掉 display: inline from ul, li {,这确实有效,但要点会出现。我关注的是我从 Udemy 下载的同一个文件。你能帮我找到我丢失的东西吗?谢谢!
我的代码如下:
PS:这是我的第一个 post,我希望我的问题格式正确。
body {
font-family: "Open Sans", sans-serif;
}
h1 {
font-size: 6em;
text-align: center;
}
nav {
font-size: 1.5em;
display: flex;
justify-content: space-between;
}
ul {
border: 2px solid black;
flex: 1;
max-width: 50%;
display: flex;
/* DOES NOT SPACE EVENLY */
justify-content: space-evenly;
}
ul,
li {
/* CONFLICTS WITH justify-content: space-evenly INSIDE ul */
display: inline;
margin: 0;
padding: 0;
}
@media (max-width: 768px) {
h1 {
font-size: 4em;
}
}
@media (max-width: 576px) {
h1 {
font-size: 3em;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Queries</title>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="starter.css">
</head>
<body>
<nav>
<!-- FLEXBOX PARENT START -->
<a href="#home">Home</a>
<ul>
<!-- FLEXBOX CHILD START -->
<li>
<a href="#Home">Learn More</a>
</li>
<li>
<a href="#Home">About</a>
</li>
<li>
<a href="#Home">Contact</a>
</li>
<!-- FLEXBOX CHILD END -->
</ul>
<a href="#signup">Sign Up</a>
<!-- FLEXBOX PARENT END -->
</nav>
<h1>Media Queries</h1>
</body>
</html>
在 ul, li
上使用 display: inline;
会影响 ul
上的 flex
。删除 ul
上的 :marker
的正确方法是在 li
上使用 list-style-type: none;
。这样做可以解决您的 space-evenly
问题。
body {
font-family: "Open Sans", sans-serif;
}
h1 {
font-size: 6em;
text-align: center;
}
nav {
font-size: 1.5em;
display: flex;
justify-content: space-between;
}
ul {
border: 2px solid black;
flex: 1;
max-width: 50%;
display: flex;
justify-content: space-evenly;
}
ul,
li {
list-style-type: none;
margin: 0;
padding: 0;
}
@media (max-width: 768px) {
h1 {
font-size: 4em;
}
}
@media (max-width: 576px) {
h1 {
font-size: 3em;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Queries</title>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="starter.css">
</head>
<body>
<nav>
<!-- FLEXBOX PARENT START -->
<a href="#home">Home</a>
<ul>
<!-- FLEXBOX CHILD START -->
<li>
<a href="#Home">Learn More</a>
</li>
<li>
<a href="#Home">About</a>
</li>
<li>
<a href="#Home">Contact</a>
</li>
<!-- FLEXBOX CHILD END -->
</ul>
<a href="#signup">Sign Up</a>
<!-- FLEXBOX PARENT END -->
</nav>
<h1>Media Queries</h1>
</body>
</html>
我正在通过 Colt Steele 在 Udemy 上的网络开发训练营进行类似“Code Along”的练习。 本质上,将 justify-content: space-evenly 添加到 ul { 不会做任何事情; ul 中的元素位于左侧。我尝试的解决方法是注释掉 display: inline from ul, li {,这确实有效,但要点会出现。我关注的是我从 Udemy 下载的同一个文件。你能帮我找到我丢失的东西吗?谢谢! 我的代码如下: PS:这是我的第一个 post,我希望我的问题格式正确。
body {
font-family: "Open Sans", sans-serif;
}
h1 {
font-size: 6em;
text-align: center;
}
nav {
font-size: 1.5em;
display: flex;
justify-content: space-between;
}
ul {
border: 2px solid black;
flex: 1;
max-width: 50%;
display: flex;
/* DOES NOT SPACE EVENLY */
justify-content: space-evenly;
}
ul,
li {
/* CONFLICTS WITH justify-content: space-evenly INSIDE ul */
display: inline;
margin: 0;
padding: 0;
}
@media (max-width: 768px) {
h1 {
font-size: 4em;
}
}
@media (max-width: 576px) {
h1 {
font-size: 3em;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Queries</title>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="starter.css">
</head>
<body>
<nav>
<!-- FLEXBOX PARENT START -->
<a href="#home">Home</a>
<ul>
<!-- FLEXBOX CHILD START -->
<li>
<a href="#Home">Learn More</a>
</li>
<li>
<a href="#Home">About</a>
</li>
<li>
<a href="#Home">Contact</a>
</li>
<!-- FLEXBOX CHILD END -->
</ul>
<a href="#signup">Sign Up</a>
<!-- FLEXBOX PARENT END -->
</nav>
<h1>Media Queries</h1>
</body>
</html>
在 ul, li
上使用 display: inline;
会影响 ul
上的 flex
。删除 ul
上的 :marker
的正确方法是在 li
上使用 list-style-type: none;
。这样做可以解决您的 space-evenly
问题。
body {
font-family: "Open Sans", sans-serif;
}
h1 {
font-size: 6em;
text-align: center;
}
nav {
font-size: 1.5em;
display: flex;
justify-content: space-between;
}
ul {
border: 2px solid black;
flex: 1;
max-width: 50%;
display: flex;
justify-content: space-evenly;
}
ul,
li {
list-style-type: none;
margin: 0;
padding: 0;
}
@media (max-width: 768px) {
h1 {
font-size: 4em;
}
}
@media (max-width: 576px) {
h1 {
font-size: 3em;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Queries</title>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="starter.css">
</head>
<body>
<nav>
<!-- FLEXBOX PARENT START -->
<a href="#home">Home</a>
<ul>
<!-- FLEXBOX CHILD START -->
<li>
<a href="#Home">Learn More</a>
</li>
<li>
<a href="#Home">About</a>
</li>
<li>
<a href="#Home">Contact</a>
</li>
<!-- FLEXBOX CHILD END -->
</ul>
<a href="#signup">Sign Up</a>
<!-- FLEXBOX PARENT END -->
</nav>
<h1>Media Queries</h1>
</body>
</html>