У меня есть следующие элементы DOM на одной горизонтальной линии:
- div, содержащий строку текста; то есть «Привет, мир». Ширина этого div такая же, как и содержащего его текста.
- Кнопка, чтобы поменять местами два div.
- Div, содержащий список. Ширина этого div такая же, как у содержащего списка.
С помощью float
или position:absolute
я могу правильно выровнять эти элементы на одной строке. Однако, когда пользователь нажимает кнопку переключения, элементы div должны поменяться местами. Я бы предпочел не удалять элементы div из DOM и снова добавлять их друг на друга. Это потому, что элементы на самом деле являются объектами 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>
Когда пользователь нажимает кнопку, первый (наша команда) и третий (противник) div должны визуально поменяться местами в браузере, желательно без удаления элементов из DOM.