我在一条水平线上有以下 DOM 元素:
- 包含一行文本的 div;即“你好世界”。此 div 的宽度与包含的文本相同。
- 交换两个 div 的按钮。
- 一个包含列表框的 div。此 div 的宽度与包含列表框的宽度相同。
With float
or position:absolute
I 可以将这些元素正确对齐在一行上。但是,当用户单击交换按钮时,div 应该交换位置。我不希望从 DOM 中删除 div 并将它们再次添加到彼此的位置。这是因为元素实际上是 Javascript 对象(更具体地说是 Google 闭包库组件),它们保存变量并附加了事件处理程序。是否可以使用 CSS 交换 div,而不为 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>
当用户单击按钮时,第一个(我们的团队)和第三个(对手)div 应该在浏览器中视觉交换,最好不要从 DOM 中删除元素。