-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

別のオプション:

編集された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>​

そして、ここにフィドルがあります

于 2012-10-30T20:56:43.387 に答える
0

フロートのセンタリングが難しい。1 つの方法を次に示します。

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

フロートが背景色を台無しにし始めた理由はまだわかりませんが、スタイル プロパティの 1 つの末尾にあるセミコロンが抜けていることに気付きました

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

する必要があります

#container 
{
padding: 10px 0 0 0;
...
}
于 2012-10-30T20:50:38.023 に答える