2012-04-15 12 views
0

私は960グリッド(http://960.gs/)で作業していましたが、私は数年前に何らかの理由で過去に使った古いスタイルのメニューを使用しました960グリッドでは、メニューは左に浮かんでいて、私はそれを中心にしたい。960グリッド内の中央メニュー

ul#menu { 
width:940px; 
height:61px; 
background: url(../images/menu_bg.png) no-repeat; 
list-style:none; 
padding-top:0; 
padding-left:0; 
margin: 0; 
} 

ul#menu li { 
float:left; 
} 

ul#menu li a { 
background: url(../images/menu_splice_color.png) no-repeat scroll top left; 
display:block; 
height:61px; 
position:relative; 
} 

ul#menu li a.shel { 
width:135px; 
} 

ul#menu li a.golf { 
width:84px; 
background-position:-135px 0px; 
} 
ul#menu li a.pro { 
width:119px; 
background-position:-219px 0px; 
} 
ul#menu li a.event { 
width:94px; 
background-position:-338px 0px; 
} 
ul#menu li a.member { 
width:148px; 
background-position:-432px 0px; 
} 
ul#menu li a.bistro { 
width:91px; 
background-position:-580px 0px; 
} 
ul#menu li a.contact { 
width:115px; 
background-position:-671px 0px; 
} 

ul#menu li a span { 
    background: url(../images/menu_splice_color.png) no-repeat scroll bottom left; 
    display:block; 
    position:absolute; 
    top:0; 
    left:0px; 
    height:100%; 
    width:100%; 
    z-index:100; 
} 

ul#menu li a.shel span { 
background-position:0px -61px; 
} 

ul#menu li a.golf span { 
background-position:-135px -61px; 
} 
ul#menu li a.pro span { 
background-position:-219px -61px; 
} 
ul#menu li a.events span { 
background-position:-338px -61px; 
} 
ul#menu li a.member span { 
background-position:-432px -61px; 
} 
ul#menu li a.bistro span { 
background-position:-580px -61px; 
} 
ul#menu li a.contact span { 
background-position:-672px -61px; 
} 

と私の一般的なHTMLマークアップは

<div class="container_16"> 



    <!-- Navigation Start --> 
    <div class="grid_16"> 
     <ul id="menu"> 
      <li><a href="#" class="shel"><span></span></a></li> 
      <li><a href="#" class="golf"><span></span></a></li> 
      <li><a href="#" class="pro"><span></span></a></li> 
      <li><a href="#" class="events"><span></span></a></li> 
      <li><a href="#" class="member"><span></span></a></li> 
      <li><a href="#" class="bistro"><span></span></a></li> 
      <li><a href="#" class="contact"><span></span></a></li> 
     </ul> 
    </div> 
    <div class="clear"></div> 

</div> 

であると私は、画像をロールオーバーするjqueryのアニメーションを使用します。

$(function() { 

    $("ul#menu span").css("opacity","0"); 

    $("ul#menu span").hover(function() { 

     $(this).stop().animate({ 
      opacity: 1 
     }, "slow"); 
    }, 

    function() { 

     $(this).stop().animate({ 
      opacity: 0 
     }, "slow"); 
    }); 
}); 
+0

あなたの選択が、このグリッドシステムは7分の2006に戻って設計されていたように見えます。それ以来多くのことが変わってきました。よりモダンなものを探したいかもしれません。 – mrtsherman

+0

私はデザインを見なければならないと思いますか?私はこれを自分で最初からやり遂げることができるということを意味しますが、どこで新しいシステムを見つけるべきだと思いますか? –

+0

私はまだそれほどセクシーなので、私は[twitters bootstrap](http://twitter.github.com/bootstrap/)をもっと頻繁に使っていますが、いくつかのプロジェクトではまだ960グリッドフレームワークを使用しています:P –

答えて

1

メニューをコンテナにラップし、position: relativeに設定します。次に、#menuを左から50%、絶対margin-left: -(outerWidth/2)の位置に配置します。

このような何かが動作するはずです:

<nav id="container"> 
    <ul id="menu"> 
    ... 
    </ul> 
</nav> 

CSS:

#container { position: relative; } 

JQ:

var $menu = $('#menu'), 
    menuWidth = $menu.outerWidth(); 

$menu.css({ 
    position: 'absolute', 
    left: '50%', 
    margin-left: -(menuWidth/2) 
}); 
+0

作業。私はアニメーション効果を取り消し、既に解雇されたかのように開始します。すべての画像がページロードされます。 –

+0

これを解決する最も簡単な方法は、_menu_と** subtract **の合計幅を占有しないようにするためにリスト項目の合計幅からとることでした。それから、私は** _menu_の合計幅を分けて余白の半分に分けました。私はそれを 'padding-left'として追加しました。すべてのブラウザIE6-9、chrome、opera、firefox、およびsafariで正常に動作します。 –

+0

私は正しい答えをくれました。あなたが私のコードで行ったことはまさに私がやったことでしたが、私はそれをパーセンテージで行い、それをCSSに追加しました。 –

0

だけdisplay:inline-block代わりの左にそれらを浮動としてあなたのメニュー項目を定義し、コンテナにtext-align:centerプロパティを指定して、それらを中心に揃えますあなたのそのようなメニュー、:

CSS

.container_16 { 
    text-align: center; 
} 

ul#menu li { 
    display: inline-block; 
    *display:inline; /* ie7 hack, since it doesn't support inline-block */ 
}