Краткая история
Скажем, мой HTML уже установлен в камне:
<div id="blockA">Block A</div>
<div id="blockB">Block B</div>
<div id="blockC">Block C</div>
Он будет выглядеть следующим образом:
------------
| Block A |
------------
| Block B |
------------
| Block C |
------------
Теперь я хочу переключить порядок блоков. Как я могу сделать это только с CSS?
------------
| Block C |
------------
| Block A |
------------
| Block B |
------------
Я знаю там хакерские решения, такие как использование position:absolute
, но это не сохраняет эффективного использования свойства display:block
. То есть блоки блокируют другие блоки вниз, когда они растут в размере.
Длинная история
Когда пользователь использует компьютер для просмотра моей веб-страницы, блоки отображаются в следующем порядке:
- Общая информация.
- Расписание событий.
- Реклама для iPhone.
Реклама iPhone-приложений размещена последней, потому что она не очень важна для пользователей компьютеров. Небольшой процент пользователей компьютеров будет выбивать свой телефон и устанавливать приложение.
Если на этот сайт приходит мобильный пользователь, реклама на iPhone должна быть самой важной на странице. Поэтому его следует перенести в начало:
- Реклама для iPhone.
- Общая информация.
- Расписание событий.
Я хотел бы, чтобы пользователи iPhone и компьютеров использовали один и тот же HTML-код, но с помощью CSS-запроса переключился порядок блоков.
@media only screen and (max-device-width: 480px) {
#blockC {
/* magic order switching */
}
}