gpt4 book ai didi

html - Flex 框在应该是一行时呈现为一列

转载 作者:行者123 更新时间:2023-11-28 10:24:44 25 4
gpt4 key购买 nike

我将应该是一个简单的导航栏和带有 flexbox 的样式放在一起。由于某种原因,它不是显示为一行(水平),而是显示为一列(垂直)。

我可以使用 float:left 使链接水平移动,但它们不会均匀拉伸(stretch)以填充导航栏。

我的理解是flex-grow:1 should make each item occupy an equal amount of space .但这并没有发生。


有四个声明没有按预期工作:

flex-direction 导航栏中的链接位于一列而不是一行

padding 虽然导航栏的填充设置为零,但它仍然看起来有填充

text-align 每个 <li> 中的文本没有水平居中

flex-grow 链接的间距不均匀


我不确定它们是否都源于一个问题,或者每个单独的问题。

这是一个简化的片段:

<!doctype html>
<html lang="en">

<head>
<meta charset="utf-8">
<title>Curse of the Nav Bar</title>
<style>
nav {
display: flex;
flex-direction: row; /* not working */
background-color: #d2d6d6;
padding: 0; /* not working */
}
nav a {
display: flex;
text-decoration: none;
list-style: none;
border: 2px solid #727171;
color: #727171;
background-color: #c4c4c4;
padding: 4px;
margin: 2px;
text-align: center; /* not working */
flex-grow: 1; /* not working */
}
nav a:hover,
nav a:active {
background-color: #aaa;
}
</style>
</head>

<body>
<nav>
<ul>
<a href="#"><li>Once</li></a>
<a href="#"><li>Upon</li></a>
<a href="#"><li>A Time</li></a>
<a href="#"><li>There</li></a>
<a href="#"><li>Was</li></a>
<a href="#"><li>A Problematic</li></a>
<a href="#"><li>Nav Bar</li></a>
</ul>
</nav>
</body>
</html>

我以前用过 flex box 很多次,但从未见过它有这样的表现。

最佳答案

您的代码中有一个小错误,这里是更正的错误,您已将所有属性赋予 Nav,而您需要将这些属性分配给 UL,

  1. 无需指定 flex-direction: row,因为这是默认属性。
  2. 填充现在也可以工作,请检查。

nav ul {
display: flex;
text-decoration: none;
flex-direction: row; /* not working */
background-color: #d2d6d6;
padding: 0; /* not working */
}
nav li {
display: flex;
text-decoration: none;
list-style: none;
border: 2px solid #727171;
color: #727171;
background-color: #c4c4c4;
padding: 4px;
margin: 2px;
justify-content: center;
flex-grow: 1;
}
nav a:hover,
nav a:active {
background-color: #aaa;
}
<nav>
<ul>
<li><a href="#">Once</a></li>
<li><a href="#">Upon</a></li>
<li><a href="#">A Time</a></li>
<li><a href="#">There</a></li>
<li><a href="#">Was</a></li>
<li><a href="#">A Problematic</a></li>
<li><a href="#">Nav Bar</a></li>
</ul>
</nav>

关于html - Flex 框在应该是一行时呈现为一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56353389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com