gpt4 book ai didi

html - 如何创建一个水平菜单,每个元素之间的宽度和间距相等?

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:18 25 4
gpt4 key购买 nike

这是我目前得到的:fiddle

虽然有 2 个问题:

  1. 我已将每个 li 的宽度硬编码为 33%,我不希望这样做,这样我可以轻松添加更多元素。
  2. 我想在每个元素之间放置一些间距(背景颜色中的间隙),但是只要我添加边距,一个元素就会向下移动一行。我该如何解决这个问题?

#main-nav {
list-style: none;
margin: 0;
padding: 0;
width: 100%;
overflow: auto;
}
#main-nav li {
float: left;
width: 33%;
height: 25px;
text-align: center;
}
#main-nav li a {
width: 100%;
display: block;
height: 100%;
line-height: 25px;
text-decoration: none;
background-color: #e0e0f0;
font-weight: bold;
color: #021020;
}
#main-nav li a:hover {
background-color: #498cd5;
color: #ddeeee;
}
<ul id="main-nav">
<li><a href="#">one</a></li>
<li><a href="#">two</a></li>
<li><a href="#">three</a></li>
</ul>

最佳答案

参见: http://jsfiddle.net/f6qmm/

display: table 用于均匀间隔动态数量的 li。不幸的是,doesn't work在 IE7 中,所以使用 *float: left(仅适用于 IE7 及更低版本),这样至少它们都在一行上 - 尽管它看起来仍然很可怕。

padding-left: 5px 应用于每个 li,然后 li:first-child { padding-left: 0 } 将其删除仅适用于第一个 li

#main-nav {
list-style: none;
margin: 0;
padding: 0;
width: 100%;
display: table;
table-layout: fixed;
overflow: hidden
}
#main-nav li {
display: table-cell;
*float: left; /* improve IE7 */
height: 25px;
text-align: center;
padding-left: 5px
}
#main-nav li:first-child {
padding-left: 0
}
#main-nav li a {
width: 100%;
display: block;
height: 100%;
line-height: 25px;
text-decoration: none;
background-color: #e0e0f0;
font-weight: bold;
color: #021020;
}
#main-nav li a:hover {
background-color: #498cd5;
color: #ddeeee;
}
<ul id="main-nav">
<li><a href="#">one</a></li>
<li><a href="#">two</a></li>
<li><a href="#">three</a></li>
</ul>

<hr />

<ul id="main-nav">
<li><a href="#">one</a></li>
<li><a href="#">two</a></li>
<li><a href="#">three</a></li>
<li><a href="#">four</a></li>
<li><a href="#">five</a></li>
</ul>

关于html - 如何创建一个水平菜单,每个元素之间的宽度和间距相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6885785/

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