-2

我试图让我的透明菜单居中显示,但是无论我从互联网上找到什么方法,似乎都没有任何效果。

如果有人可以查看此代码并帮助我,我真的很高兴。:)

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;
}
4

4 回答 4

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;
}

JSFiddle

于 2012-10-30T20:47:34.873 回答
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/

于 2012-10-30T20:46:28.807 回答
0

您的菜单未居中的原因是因为您没有为菜单或容器定义宽度。如果您有一个定义的宽度,那么您将能够使用:

margin: 0 auto;

我还不确定为什么你的浮动开始弄乱你的背景颜色,但是我注意到你在你的一个样式属性的末尾错过了一个分号

#container 
{
padding: 10px 0 0 0
...
}

应该

#container 
{
padding: 10px 0 0 0;
...
}
于 2012-10-30T20:50:38.023 回答
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;
    }​

编辑的 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

于 2012-10-30T20:56:43.387 回答