以透明菜单为中心

时间:2012-10-30 20:39:40

标签: html css center

我试图让我的透明菜单显示为居中,但无论我从互联网上挖掘出什么方法,似乎没有什么可以做到的。

如果有人能查看这段代码,我会非常乐意,并帮助我。 :)

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 个答案:

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

JSFiddle

答案 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