1 つの水平線に次の DOM 要素があります。
- テキスト行を含む div。つまり、「ハローワールド」です。この div の幅は、含まれるテキストと同じです。
- 2 つの div を入れ替えるボタン。
- リストボックスを含む div。この div の幅は、含まれているリストボックスと同じです。
float
またはI を使用position:absolute
すると、これらの要素を 1 行に正しく配置できます。ただし、ユーザーがスワップ ボタンをクリックすると、div は場所を交換する必要があります。DOM から div を削除したり、互いの場所に再度追加したりしたくありません。これは、要素が実際には Javascript オブジェクト (具体的には Google Closure Library コンポーネント) であり、変数を保持し、イベント ハンドラーが関連付けられているためです。div に静的な幅を割り当てずに、CSS を使用して div を交換することは可能ですか?
簡単な例:
<div style="position:relative; height:60px;">
<div style="float:left;">Our Team</div>
<div style="float:left;"><button onclick="swap();">swap home/away</button></div>
<div style="float:left;"><select><option>Opponent A</option><option>Opponent B</option></select></div>
</div>
<div style="clear:both;"></div>
ユーザーがボタンをクリックすると、できれば DOM から要素を削除せずに、最初 (私たちのチーム) と 3 番目 (対戦相手) の div がブラウザーで視覚的に交換されます。