我试图让我的透明菜单显示为居中,但无论我从互联网上挖掘出什么方法,似乎没有什么可以做到的。
如果有人能查看这段代码,我会非常乐意,并帮助我。 :)
HTML部分:
<div id="container">
<div id="menu">
<span class="bg"></span>
<ul>
<li><a href="print">PRINT</a></li>
<li><a href="tv">TV</a></li>
<li><a href="other">OTHER</a></li>
<li><a href="resume">RESUME</a></li>
</ul>
</div>
CSS部分:
#container
{
display: inline-block;
*display: inline;
zoom: 1;
padding: 10px 0 0 0
overflow:hidden;
font-family:arial;
height:400px;
}
#menu
{
float: left; // **WHENEVER I CHANGE THIS FLOAT, THE MENU-BACKGROUND DISAPPEARS?!**
position: relative;
display:inline;
border:2px solid #000;
border-top:0;
border-radius:0 0 10px 10px;
}
#menu .bg
{
position:absolute;
width:100%;
height:100%;
background:#000;
opacity:0.5;
filter:alpha(opacity=50);
left:0;
top:0;
}
#menu li
{
float:left;
}
#menu a
{
text-decoration:none;
position:relative;
padding:8px 13px;
color:white;
font-weight:bold;
z-index:2;
float:left;
}
#menu a:hover
{
color:#999;
}
答案 0 :(得分:1)
您可以将#menu
更新为:
#menu {
position: absolute;
border:2px solid #000;
border-top:0;
border-radius:0 0 10px 10px;
left: 50%;
margin-left: -152px;
width: 305px;
}
答案 1 :(得分:0)
中心花车很难。这是一种方法:
<style type="text/css">
#container
{
font-family:arial;
height:400px;
border: red;
position: relative;
}
#menu
{
position:relative;
left:-50%;
float:right;
}
ul
{
position:relative;
left:50%;
background: rgba(0, 0, 0, 0.5);
overflow: hidden;
}
li{
display:block;
float:left;
padding: 8px 13px;
}
a {text-decoration:none;}
</style>
<div id="container">
<div id="menu">
<ul>
<li><a href="print">PRINT</a></li>
<li><a href="tv">TV</a></li>
<li><a href="other">OTHER</a></li>
<li><a href="resume">RESUME</a></li>
</ul>
</div>
</div>
来源:http://browse-tutorials.com/snippet/center-floats-css 小提琴:http://jsfiddle.net/yucHM/2/
答案 2 :(得分:0)
菜单没有居中的原因是因为菜单或容器没有定义的宽度。如果您有一个已定义的宽度,那么您将能够使用:
margin: 0 auto;
我不确定为什么你的浮动开始弄乱你的背景颜色,但是我注意到你在你的一个风格属性的末尾错过了一个分号
#container
{
padding: 10px 0 0 0
...
}
应该是
#container
{
padding: 10px 0 0 0;
...
}
答案 3 :(得分:0)
另一种选择:
编辑CSS:
#container
{
display: inline-block;
*display: inline;
zoom: 1;
padding: 10px 0 0 0
overflow:hidden;
font-family:arial;
height:400px;
}
#menu
{
float: left; // **WHENEVER I CHANGE THIS FLOAT, THE MENU-BACKGROUND DISAPPEARS?!**
position: relative;
display:inline;
}
#menu .bg
{
position:absolute;
width:100%;
height:100%;
background:#000;
opacity:0.5;
filter:alpha(opacity=50);
left:0;
top:0;
}
#menu ul { <===Added this definition and moved the border here as well
clear:left;
float:left;
list-style:none;
margin:0;
padding:0;
position:relative;
left:50%;
text-align:center;
border:2px solid #000;
border-top:0;
border-radius:0 0 10px 10px;
}
#menu li
{
float:left;
}
#menu a
{
text-decoration:none;
position:relative;
padding:8px 13px;
color:white;
font-weight:bold;
z-index:2;
float:left;
}
#menu a:hover
{
color:#999;
}
EDITED HTML(关闭div标签)
<div id="container">
<div id="menu">
<span class="bg"></span>
<ul>
<li><a href="print">PRINT</a></li>
<li><a href="tv">TV</a></li>
<li><a href="other">OTHER</a></li>
<li><a href="resume">RESUME</a></li>
</ul>
</div>
</div>
这是FIDDLE