1 つの div 内に 3 つの div (左/中央/右) を配置するにはどうすればよいですか?
P粉092778585
2023-08-21 15:09:18
<p>次のように、コンテナ div 内の 3 つの div を整列させたいと考えています。 </p>
<pre class="brush:php;toolbar:false;">[[LEFT] [CENTER] [RIGHT]]</pre>
<p>コンテナ div の幅は 100% (幅は設定されていません) で、コンテナのサイズを変更した後も中央 div は中央に留まる必要があります。 </p>
<p>それで私は次のように設定しました: </p>
<pre class="lang-css prettyprint-override"><code>#container{width:100%;}
#left{float:left;width:100px;}
#right{float:right;width:100px;}
#center{マージン:0 自動;幅:100ピクセル;}
</code></pre>
<p>しかし、結果は次のようになりました: </p>
<pre class="brush:php;toolbar:false;">[[左] [中央] ]
[右]</pre>
<p>何か提案はありますか? </p>
Flexbox を使用して 3 つの div を水平に配置します
これは、div を別の div 内で水平方向に整列させる CSS3 の方法です。
jsフィドル
justify-content 属性には 5 つの値があります:
を参照してください。
フレックスボックスの利点:
フレックスボックスの詳細:
Flex アイテムを整列させる方法-
CSS フレックスボックスを使用する- ~ MDN
Flexbox 完全ガイド - ~ CSS のコツ
フレックスボックスとは何ですか? ! - ~ YouTube ビデオ チュートリアル
ブラウザのサポート: Flexbox は、IE を除くすべての主要なブラウザでサポートされています。 Safari 8 や IE10 などの一部の最近のブラウザ バージョンでは、 ベンダー プレフィックス が必要です。プレフィックスをすばやく追加するには、Autoprefixer を使用します。詳細については、この回答を参照してください。
この CSS を使用して、div を次のように配置します (float が最初):
リーリー注: 最初に右をフロートし、次に左をフロートし、次に中央をフロートすることもできます。フローティング コンテンツが「メイン」の中央セクションの前に配置されることが重要です。
注: 通常は、
#container
の最後にこのコードを追加します。<div style="clear:both;">< /div>
では、#center
の高さから単に配置するのではなく、#container
の高さを垂直方向に拡張して、両側のフローティング コンテンツに対応します。こんな感じ これで両面の内容が底からはみ出すのを防ぎます。