2009-07-04 17 views
6

幅が不明なCSSメニューを中央に配置する必要があります。私は解決策を見つけた。 ULタグをdisplay:tableまたはdisplay:inline-tableに設定することにより、LI要素を中央に揃えることができます。IEのCSSメニューのLIの要素の中心?

このソリューションはIEでは機能しませんでした。 HTML/CSSだけでIEで動作する別のソリューションはありますか?

私のコードをよく見たい場合は、貼り付けたhereです。

答えて

18

How about this? IE6、IE7、Firefoxで動作します。

マークアップ:

<div id='menu-centered'> 
    <ul> 
     <li><a href="">My first item</a></li> 
     <li><a href="">My second item</a></li> 
     <li><a href="">My third item</a></li> 
     <li><a href="">My fourth item</a></li> 
     <li><a href="">My fifth item</a></li> 
    </ul> 
</div> 

CSS:

#menu-centered { 
    background-color: #0075B8; 
    padding: 10px; 
    margin: 0; 
} 

#menu-centered ul { 
    text-align: center; 
    padding: 0; 
    margin: 0; 
} 

#menu-centered li { 
    display: inline; 
    list-style: none; 
    padding: 10px 5px 10px 5px; 
} 

#menu-centered a { 
    font: normal 12px Arial; 
    color: #fff; 
    text-decoration: none; 
    padding: 5px; 
    background: #57a8d6; 
} 

#menu-centered a:hover { 
    background: #5fb8eb; 
} 

全部の鍵は基本的に<ul>要素にtext-align: center;をしていました。 display: table;のようなものを実際にやりたいことは決してありません。それはちょうどハッキーで、あなたが知っているように、すべてのブラウザで動作しません。この方法は浮動を避けるので、そこに明確な要素を入れる必要はありませんが、<ul>overflow: auto;を追加することで削除できます。それが役に立てば幸い。

+0

タグ「a」内にブロック要素があるとどうなりますか? 'span { display:block; }

  • Adulto
  • 「 **スパン要素を「img」の下に置き、集中化する方法** – ridermansb

    関連する問題