Я перейду к примеру.
<!DOCTYPE html>
<head>
<title>Transposing div using CSS</title>
<style>
div#wrapper {
}
div#menu {
border:blue solid 1px;
}
div#main {
border:red solid 1px;
}
</style>
</head>
<body>
<p>How do we show the menu div immediately after the content div?</p>
<div id="wrapper">
<div id="menu">Menu</div>
<div id="main">Content</div>
</div>
</body>
</html>
В браузере div меню будет первым в потоке. Теперь предположим, что мне нужно изменить макет так, чтобы «Меню» следовало за содержимым содержимого div. Как это можно сделать с помощью только CSS. Это означает, что не нужно вносить никаких изменений в HTML (не нужно обнаруживать пользовательский агент) и нет кода JavaScript.
Основной метод CSS для позиционирования элементов - использовать атрибут float: right | left. Это хорошо работает для перемещения элементов относительно их ограничительной рамки, но я смотрю на перемещение элемента в конце его элемента-преемника в нормальном потоке.
А вот и пример использования. Я хочу, чтобы веб-сайт оптимально отображался в браузерах с небольшим экраном, как на iPhone. В настоящее время на веб-сайте есть меню вверху и содержание внизу, очень распространенный макет, но на iPhone недвижимость настолько ограничена, что было бы предпочтительно иметь меню, следующее за основным текстовым содержимым.
Решение должно работать только с мобильными телефонами iPhone и Android ( на базе WebKit ). Поэтому нет необходимости учитывать Internet Explorer хаки и тому подобное.