2012-01-30 6 views
1

私はメニューを作ろうとしています。私のメニューはすべての解像度でページの左右にセンタリングされているように見えます。例えば;cssリスト項目すべての解像度で同じマージン

800 width 
     ---------------------------------------- 
     | menu item1 menu item2 menu item3 | 
     |          | 
     ---------------------------------------- 

    1920 width 
     ------------------------------------------------ 
     | menu item1  menu item2  menu item3 | 
     |            | 
     ------------------------------------------------ 

私は、画面の幅のための新たなマージン値を計算し、すべてのメニュー項目のマージンを変更するjQueryの関数を作成しました。それはうまくいく。しかし、私はそれがCSSでのみこれを行うことが可能であることを学びたいですか?

また、マージン左:5%を試しましたが、画面の幅が800のように狭い場合、メニュー項目がdivに適合せず、いくつかの項目が下がります。

答えて

1

よく、このパーセンテージの問題は、定数と混合したときに非常に扱いにくくなることです。フォントサイズ/パディング/ライン高さの%値を定義することで、divにフィットさせることもできます。

一方、メニューに3つのアイテムしかない場合、項目1と3に浮動小数点:左/右を使用しやすく、画面の幅に基づいて余白を変更する方が簡単です。もちろん、これはおそらくより多くのアイテムを持つメニューでは機能しません。

+0

javascriptの機能が優れています。 – Malixxl

+0

#1と#3がdivの遠い方に行くので(#2の両側に大きなマージンを作成する)OKならば、あなたは本当にデザインに依存しますが、JSも必要ありません。ちょうどそれらを浮かべることはトリックを行うだろう。しかし、私はそうではありません。また、実際にJSでマージンを操作する必要はありません。ボディ幅の幅についてbody要素にクラスを与え、そのセレクタに基づいてCSSを定義します: "body.narrow .item"または "body.wide .item" – Ege

関連する問題