序文: 私は一般的に UI の専門家ではないので、CSS について大きな誤解がある場合はご容赦ください。この質問は、数時間の調査/壁に頭をぶつけた後のものであることを知っておいてください:)
基本的に、私がやろうとしているのは、未知の数の要素を、既知の幅の2つの要素の間の未知の幅のスペースに引き伸ばすことです.
入力しているうちに、どれだけクレイジーに聞こえるかがわかったので、これをグラフィカルに実行してみましょう。
html
|-------------------------------------------------------------------------|
| #container |
| |-----------------------------------------------------------------| |
| |#header | |
| ||---------------------------------------------------------------|| |
| || #logo | #menu | #social || |
| || | |---| |---| |---| |---| | || |
| || | | A | | B | | C | ... ... ... | N | | || |
| || | |---| |---| |---| |---| | || |
| ||---------------------------------------------------------------|| |
| | | |
| |#body | |
| ||---------------------------------------------------------------|| |
| || || |
| ||---------------------------------------------------------------|| |
|-------------------------------------------------------------------------|
どこ:
#container中央に配置され、ドキュメントの幅の 80% を占めます#logo、#menu、および#socialはそれぞれ<div/>sに含まれます#logo#social既知の幅があります。#menuではない| A |...内の要素の| N |数は不明です<li/><ul/>
HTML は次のようになります。
<body>
<div id="container">
<div id="header">
<div id="logo">Logo here</div>
<div id="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Home</a></li>
<li><a href="#">Home</a></li>
</ul>
</div>
<div id="social"><a href="#">Link</a><a href="#">Link</a></div>
</div>
<div id="body"> </div>
</div>
</body>
と要素A..Nの間の残りのスペースにメニュー項目を広げることができません。それらは一緒にスムーズに処理されるか、.#logo#social#container
私がすでに試したいくつかのこと:
私ができない/やろうと思わないこと:
- メニュー項目を
<table/> - あらゆる種類の JavaScript アプローチ
- CSS
calc()関数の使用
最後に 1 つ注意してください。これらのメニュー項目に割り当てられたスペースに十分なスペースがないことは心配していません。#menuただし、オーバーフローした場合は、内部(つまり、Aメニュー項目の下)の別の行にオーバーフローすると予想されます。
これには純粋な CSS ソリューションが必要です...それは何ですか?