ちょっとした背景: Web ページの上部にある全体にまたがるヘッダーに取り組んでいます。現在のユーザー名、ログアウト ボタンなどをヘッダーの右側にフロートさせ、ロゴといくつかのナビゲーション項目を左側に配置したいと考えています。左のアイテムと右のアイテムが衝突するようにブラウザウィンドウが縮小する場合、それらをラップしたくありません。header-container div を overflow: auto に設定しているので、スクロールを開始したいと思います。
質問: div float:left と div float:right の両方に display:inline-block があり、親に white-space:no wrap がある場合でも - ラップ!!! 偶然にも、さらに別の div を display:inline-block で囲むことで機能させることができることがわかりました。どうしてこれなの???
以下は私のコードと動作中のjsfiddleで、動作中のセットアップとラップするセットアップの両方を示しています。追加の div が必要な理由がわかりません。 http://jsfiddle.net/klyngbaek/tNHLL/9/
ウィンドウを縮小するときに、2 番目の青い四角形を新しい行にドロップしたくない
HTML:
<h2>With extra inline-block dive. The blue rectangles do not wrap.</h2>
<div class="wrapper nowrap">
<div class="second-wrapper">
<div class="floating float-left">[logo] | home | [navitem1] | [navitem2]</div>
<div class="floating float-right">[username] | logout</div>
</div>
</div>
<h2>Without extra inline-block dive. The blue rectangles do wrap.</h2>
<div class="wrapper nowrap">
<div class="floating float-left">[logo] | home | [navitem1] | [navitem2]</div>
<div class="floating float-right">[username] | logout</div>
<div class="clearfix"></div>
</div>
CSS:
.wrapper {
border:#333;
margin-bottom:;
}
.second-wrapper {
border:;
display:inline-block;
min-width: 100%;
}
.nowrap {
white-space: nowrap;
}
.clearfix {
clear: both;
}
.floating {
background: lightblue;
border:;
height:;
padding:}
.float-left {
float: left;
}
.float-right {
float: right
}
または、私が望むことを達成するためのより良い方法があるかもしれません。
前もって感謝します!
編集:更新されたjsfiddleリンク