2011-07-01 11 views
1

CSSドロップダウンメニューの中央に表示しようとしていますが、動作させることができません。私はテキストアラインメントを追加しようとしました:centerとmargin-left:auto; margin-right:autoですが、中央に配置されるのはすべてドロップダウンli項目です。これはどうですか?ここでCSSドロップダウンメニューの中央に表示

は、CSSです:

.bg {background-color: #008503;} 
.menu {padding:0 0 0 32px; margin:0; list-style:none; height:30px; background-color: #1e52b8; position:relative; font-family: Helvetica, Verdana, sans-serif; } 
.menu li.top {display:block; float:left; position:relative;} 
.menu li a.top_link {display:block; float:left; height:30px; line-height:33px; color:#FFF; text-decoration:none; font-size:15px; font-weight:bold; padding:0 0 0 12px; cursor:pointer;} 
.menu li a.top_link span {float:left; font-weight:bold; display:block; padding:0 24px 0 12px; height:30px;} 
.menu li a.top_link span.down {float:left; display:block; padding:0 24px 0 12px; height:40px; background:url(images/down.gif) no-repeat right top;} 
.menu li a.top_link:hover {color:#000; background-color: #008503;} 
.menu li a.top_link:hover span {background-color: #008503;} 
.menu li a.top_link:hover span.down {background-color: #FF0000;} 

.menu li:hover > a.top_link {color:#FFF; background-color: #008503;} 
.menu li:hover > a.top_link span {background-color: #008503;} 
.menu li:hover > a.top_link span.down {background-color: #FF0000;} 

.menu table {border-collapse:collapse; width:0; height:0; position:absolute; top:0; left:0;} 

.menu a:hover {visibility:visible;} 
.menu li:hover {position:relative; z-index:200;} 

.menu ul, 
.menu :hover ul ul, 
.menu :hover ul :hover ul ul, 
.menu :hover ul :hover ul :hover ul ul, 
.menu :hover ul :hover ul :hover ul :hover ul ul {position:absolute; left:-9999px; top:-9999px; width:0; height:0; margin:0; padding:0; list-style:none;} 

.menu :hover ul.sub {left:0; top:30px; right:2px; background: #fff; padding:3px 0; border:1px solid #008503; white-space:nowrap; width:200px; height:auto;} 
.menu :hover ul.sub li {display:block; height:20px; position:relative; float:left; width:250px;} 
.menu :hover ul.sub li a {font-weight:normal;display:block; font-size:11px; height:20px; width:192px; line-height:20px; text-indent:5px; color:#000; text-decoration:none; border:3px solid #fff; border-width:0 0 0 3px;} 
.menu :hover ul.sub li a.fly {background:#fff url(images/arrow.gif) 80px 7px no-repeat;} 
.menu :hover ul.sub li a:hover {background:#1e52b8; color:#fff;} 
.menu :hover ul.sub li a.fly:hover {background:#999999 url(images/arrow_over.gif) 80px 7px no-repeat; color:#fff;} 
.menu :hover ul li:hover > a.fly {background:#999999 url(images/arrow_over.gif) 80px 7px no-repeat; color:#fff;} 

.menu :hover ul :hover ul, 
.menu :hover ul :hover ul :hover ul, 
.menu :hover ul :hover ul :hover ul :hover ul, 
.menu :hover ul :hover ul :hover ul :hover ul :hover ul 
{left:90px; top:-4px; background: #fff; padding:3px 0; border:1px solid 999999; white-space:nowrap; width:93px; z-index:200; height:auto;} 

そして、ここでは、HTMLです:

<div style="width: 980px"> <!-- container --> 
<ul class="menu"> 
    <li class="top"><a href="#" class="top_link"><span>Introduction</span></a></li> 
    <li class="top"><a href="#" class="top_link"><span>About us</span></a> 
     <ul class="sub"> 
      <li><a href="#">Sample Menu This is some longer text</a></li>   
      <li><a href="#">Sample Menu</a></li> 
      <li><a href="#">Sample Menu</a></li> 
      <li><a href="#">Sample Menu</a></li> 
      <li><a href="#">Sample Menu</a></li> 
     </ul> 
    </li> 
    <li class="top"><a href="#" class="top_link"><span>The island</span></a> 
     <ul class="sub"> 
      <li><a href="#">Sample Menu This is some longer text</a></li>   
      <li><a href="#">Sample Menu</a></li> 
      <li><a href="#">Sample Menu</a></li> 
      <li><a href="#">Sample Menu</a></li> 
     </ul> 
    </li> 
    <li class="top"><a href="#" class="top_link"><span>Hotels</span></a></li> 
    <li class="top"><a href="#" class="top_link"><span>Tours</span></a></li> 
    <li class="top"><a href="#" class="top_link"><span>Reservation</span></a></li> 
    <li class="top"><a href="#" class="top_link"><span>Contact us</span></a></li> 
</ul> 
</div> 

答えて

4

あなたはfloatを使用しているので、それを中央にする唯一の方法は含んでいる要素と使用に幅を適用することですmargin-left:auto; margin-right:auto。これを行う方法はありません柔軟な幅を保持します。

floatの代わりにdisplay:inline-block;これらはtext-align:centerを使用してセンタリングすることができますが、CSSを修正する必要があります。

+0

ありがとう、素晴らしい作品! 私はディスプレイのクリーナーソリューションを使用しています:インラインブロック。 –

+0

ちょっと注意が必要です。インラインブロックを使用している場合は、要素間の空白がレンダリングされます(floatを使用しない場合)。要素を互いに触れるようにするには、htmlにそれらの間に空白がないことを確認します。 – Gerben

+0

anychanceあなたはあなたがこれを解決した方法を説明することができた、私はCSSの専門家ではないが、ワードプレスのマルチドロップダウンメニューを取得しようとしている... –

0

さて、ここでそれを行うための一つの方法だ、あなたのメニュー周りのdivコンテナを置くことができる...

# menuContainer {マージン:自動;}

<のdivのid = 'menuContainer' スタイル= "幅:980ピクセル" >

+0

実際に、しかしGerbenが言うように、あなたはフロートのためにできません:左。 –

関連する問題