2016-04-25 14 views
0

トップメニューバーを作成しようとしていますが、float: leftを使用していません。 トップメニューバーの正しい動作(ウィジェット自体にここに記載されています)を持つにはどうすればいいですか?トップメニューCSSデザイン

 * { margin:0; padding: 0; } 
 
     #menu { background-color: yellow; } 
 
     #left {background-color: green; width: 200px; } 
 
     #mid { background-color: red; width: 40%; float: left; } 
 
     #right {background-color: blue; float: left; }
<div id="menu"> 
 
    <div id="left">left green: 200px</div> 
 
    <div id="mid">mid red: 40% of browser width</div> 
 
    <div id="right">right blue: rest</div> 
 
    </div> 
 
    <div> 
 
    content of the site 
 
    </div>

答えて

1

私は、これはあなたが何をしようとしてあると思います。私はそれをかなり簡単にするCSS flexboxを使用しました。

 * { margin:0; padding: 0; } 
 
     #menu { background-color: yellow; display: flex; } 
 
     #left {background-color: green; flex: 0 0 200px; } 
 
     #mid { background-color: red; flex: 0 0 40%; } 
 
     #right {background-color: blue; flex: 1; }
<div id="menu"> 
 
    <div id="left">left green: 200px</div> 
 
    <div id="mid">mid red: 40% of browser width</div> 
 
    <div id="right">right blue: rest</div> 
 
    </div> 
 
    <div> 
 
    content of the site 
 
    </div>

レガシーサポートが必要な場合は、単に適切に山車を適用する必要があります。

 * { margin:0; padding: 0; } 
 
     #menu { background-color: yellow; } 
 
     #left {background-color: green; float: left; width: 200px; } 
 
     #mid { background-color: red; float: left; width: 40%; } 
 
     #right {background-color: blue; }
<div id="menu"> 
 
    <div id="left">left green: 200px</div> 
 
    <div id="mid">mid red: 40% of browser width</div> 
 
    <div id="right">right blue: rest</div> 
 
    </div> 
 
    <div> 
 
    content of the site 
 
    </div>

+0

いや....ない 'フレックス:1 'すべてのdiv ...ただ、最後の1に。 –

+0

@Paulie_Dその説明をありがとう。正確な回答を確実にするためにあなたの時間と労力を感謝します。 – Quantastical

+0

@Quantastical奇妙なことに、奇妙なことに、 'flex'は、ChromeとSafari for iPad(最近のバージョンでさえ)でひどくサポートされています。例えば、ここに私が得る問題がありますhttp://stackoverflow.com/questions/36877321/display-flex-doesnt-work-on-ipad-both-chrome-and-safariこれを解決する方法についてあなたはどんな考えがありますか? – Basj

1

フレキシボックスはそれを行うことができます。

正しいflexプロパティを使用して、制限された幅のdivが展開されないようにすることが重要です。

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
#menu { 
 
    background-color: yellow; 
 
    display: flex; 
 
} 
 
#left { 
 
    background-color: green; 
 
    flex: 0 0 200px; 
 
} 
 
#mid { 
 
    background-color: red; 
 
    flex: 0 0 40%; 
 
} 
 
#right { 
 
    background-color: blue; 
 
    flex: 1; 
 
}
<div id="menu"> 
 
    <div id="left">left green: 200px</div> 
 
    <div id="mid">mid red: 40% of browser width</div> 
 
    <div id="right">right blue: rest</div> 
 
</div> 
 
<div> 
 
    content of the site 
 
</div>

+0

クール!前にフレックスを聞いたことはありません!フレックスの前に人々はどのようにしましたか? (私は、例えば、ブートストラップはフレックスを使用していないと思います)。 – Basj

+0

@Basj Bootstrap 4はFlex IIRCに移行しています。以前は、彼らは浮遊していました。 – Quantastical

+0

私はiPadで試してみましたが、それは 'flex'がChromeやSafari for iPad(最近のバージョンでさえ)でうまくサポートされていないようです。あなたのコードは、そのようなデバイスではあまりレンダリングされません。多分あなたがアイデアを持っているなら、私はこれについて質問を作成しましたか? http://stackoverflow.com/questions/36877321/display-flex-doesnt-work-on-ipad-both-chrome-and-safari – Basj

関連する問題