私は単純な水平メニューを持っています(下記参照)。いくつかのアイテムは左に浮かれていて、一部は右に浮かんでいます(右側のオプションは管理オプションで、すべてのページに表示されますが、左側のものはコンテキスト固有のものです)各メニューアイテムには盛り上がったボタンとして表示される境界があります。左浮動アイテムと右浮動アイテムの間のスペーサーアイテムのように、上げボタンとしても使用できます。CSS水平メニューの動的幅スペーサー
私の問題は、純粋なCSSの方法では、「ul.menu下のCSSの「li.spacer」セレクタを参照してください)、スペーサーの幅が左右の浮動項目の間のスペースを埋めるようにします。スペーサーの幅は、他の項目の数と幅がコンテキストによって異なります文脈上
私はdynamicaにいくつかのjavascriptを書くことができました私はスペーサーの幅を設定していますが、それはブラウザー固有のものでなければなりません。異なるブラウザーでは境界/マージンを別々に扱うので、そうしたくないので本当に醜いでしょう。
[右ためのフロート、浮いて右のアイテムは逆の順序で列挙されている、彼らが画面に表示されることに注意してください]
<ul class='menu'>
<li class='left'><a href='xxx'>Item One</a></li>
<li class='left'><a href='xxx'>Item Two</a></li>
<li class='left'><a href='xxx'>Item Three</a></li>
<li class='left'><a href='xxx'>Item Four</a></li>
<li class='right'><a href='xxx'>Item Eight</a></li>
<li class='right'><a href='xxx'>Item Seven</a></li>
<li class='right'><a href='xxx'>Item Six</a></li>
<li class='right'><a href='xxx'>Item Five</a></li>
<li class='spacer'><a href='#'> </a></li>
</ul>
とここに私のCSS
ul.menu {
width: 100% ;
list-style: none ;
height: 2em ;
margin: 0 ;
padding: 0 ;
}
ul.menu li.left {
float: left ;
}
ul.menu li.right {
float: right ;
display: inline-block ;
}
ul.menu li {
border: 1px solid ;
border-color: #fff #000 #000 #fff ;
position: relative ;
text-align: center ;
vertical-align: middle ;
}
ul.menu li a {
padding: 0 1em;
}
ul.menu li.spacer {
width: ??? ;
}
がここにありますされますフィドル:http://jsfiddle.net/uJCAX/1/
スコット: "フィドルは" あなたは何を追加され
は、ここでは、コード(追加した2つの
last
クラス)ですか?私はそれを理解していません –あなたのコードは、人々があなたが望む効果を得るためにコードを "欺く"ことができるサイトに追加されました。 – ScottS
thanx、私は以前それを見ていないだろう。便利な –