如何将菜单项放在中间?
How to place menu items in middle?
我想让菜单项居中。目前,菜单项在左侧
html:
<ul id="menu">
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
css:
ul#menu{
list-style-type: none;
margin: 0;
padding: 0;
overflow:hidden;
background-color: #000000;
}
ul#menu li {
float: left;
}
ul#menu li a {
display: block;
color: white;
text-align: center;
font-family: verdana;
font-size: 24px;
padding: 30px;
text-decoration: none;
}
ul#menu li a:hover {
background-color: #222222;
}
ul#menu li a:active {
background-color: #222222;
}
我现在有这个:
menu left side
我想要这个:
menu middle
您的项目留在左侧是因为您在每个 li(菜单项)上都有一个 float: left;
。
解决方案 1:在您的父级(容器)中使用 flexbox 和以下内容:
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
您需要 flex-wrap: wrap;
,因为默认情况下 flexbox 将其设置为 nowrap
,当您的屏幕尺寸较小时,它不会响应移动设备。
ul#menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #000000;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
}
ul#menu li {
float: left;
}
ul#menu li a {
display: block;
color: white;
text-align: center;
font-family: verdana;
font-size: 24px;
padding: 30px;
text-decoration: none;
}
ul#menu li a:hover {
background-color: #222222;
}
ul#menu li a:active {
background-color: #222222;
}
<ul id="menu">
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
解决方案 2:在父容器上使用 text-align: center;
,然后在子容器上使用 display: inline-block;
,删除 float: left
:
ul#menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #000000;
text-align: center;
}
ul#menu li {
display: inline-block;
}
ul#menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #000000;
text-align: center;
}
ul#menu li {
display: inline-block;
}
ul#menu li a {
display: block;
color: white;
text-align: center;
font-family: verdana;
font-size: 24px;
padding: 30px;
text-decoration: none;
}
ul#menu li a:hover {
background-color: #222222;
}
ul#menu li a:active {
background-color: #222222;
}
<ul id="menu">
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
我想让菜单项居中。目前,菜单项在左侧
html:
<ul id="menu">
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
css:
ul#menu{
list-style-type: none;
margin: 0;
padding: 0;
overflow:hidden;
background-color: #000000;
}
ul#menu li {
float: left;
}
ul#menu li a {
display: block;
color: white;
text-align: center;
font-family: verdana;
font-size: 24px;
padding: 30px;
text-decoration: none;
}
ul#menu li a:hover {
background-color: #222222;
}
ul#menu li a:active {
background-color: #222222;
}
我现在有这个: menu left side
我想要这个: menu middle
您的项目留在左侧是因为您在每个 li(菜单项)上都有一个 float: left;
。
解决方案 1:在您的父级(容器)中使用 flexbox 和以下内容:
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
您需要 flex-wrap: wrap;
,因为默认情况下 flexbox 将其设置为 nowrap
,当您的屏幕尺寸较小时,它不会响应移动设备。
ul#menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #000000;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
}
ul#menu li {
float: left;
}
ul#menu li a {
display: block;
color: white;
text-align: center;
font-family: verdana;
font-size: 24px;
padding: 30px;
text-decoration: none;
}
ul#menu li a:hover {
background-color: #222222;
}
ul#menu li a:active {
background-color: #222222;
}
<ul id="menu">
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
解决方案 2:在父容器上使用 text-align: center;
,然后在子容器上使用 display: inline-block;
,删除 float: left
:
ul#menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #000000;
text-align: center;
}
ul#menu li {
display: inline-block;
}
ul#menu {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #000000;
text-align: center;
}
ul#menu li {
display: inline-block;
}
ul#menu li a {
display: block;
color: white;
text-align: center;
font-family: verdana;
font-size: 24px;
padding: 30px;
text-decoration: none;
}
ul#menu li a:hover {
background-color: #222222;
}
ul#menu li a:active {
background-color: #222222;
}
<ul id="menu">
<li><a href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>