У меня есть несколько страниц на моем веб-сайте, которые хорошо смотрятся только на широкоэкранном мониторе. Что-то вроде этого:Как сделать гибкую компоновку?
|========================|
| H E A D E R |
|========================|
|Block1 | B I G |
|-------| D A T A |
|Block2 | B L O C K |
|========================|
| F O O T E R |
|========================|
Для людей с небольшим дисплеем это не очень дружелюбно.
Я вижу несколько вариантов с тем, как обращаться с этим.
Вариант A: Удаление части контента или реструктурировать его для того чтобы иметь его обычно отображается для узких дисплеев
|===============|
| H E A D E R |
|===============|
|Block1 | Block2|
|---------------|
| B I G |
| D A T A |
| B L O C K |
|===============|
| F O O T E R |
|===============|
Вариант B: Разрешить пользователям настроить, как они хотят, чтобы эти страницы (ы) : полноэкранный режим или режим с узким экраном. В первом случае страница будет отображаться, как сейчас (1-я таблица), и если люди выбирают второй подход, она будет настроена так, как описано в Варианте A (2-я таблица). Этот элемент требует еще выполнить элемент №1, который является приемлемым и приемлемым
Опция C: Но лучший подход, как мне кажется, делает UI гибким: если страница широкая, тогда элементы содержимого div отображаются в строке последовательность; если страница узкая, то они отображаются в последовательности столбцов.
Итак, идея состоит в том, что Block1, Block2 будет иметь такую же ширину и высоту и будет автоматически размещаться браузером.
Вопрос №1: как реализовать вариант C с использованием только HTML + CSS-разметки?
Я действительно понимаю, что Block1, Block2 - должен иметь style = "float: left", но когда я делаю блок 2, всегда справа от блока 1, если окно браузера слишком узкое. И «большой блок» никогда не находится справа от 2 маленьких (см. Мой код ниже)
Вопрос №2: Имеет ли смысл пытаться реализовать вариант C?
P.S. Вот мой прототип:
<html>
<head><title>Test blocks</title></head>
<body>
<style type="text/css">
div {
border: 1px solid black;
position: relative;
}
div.b1 {
width:300px;
height: 200px;
float: left;
}
div.b2 {
width:300px;
height: 100px;
float: left;
}
div.big {
width: 800px;
height: 200px;
float: left;
}
</style>
<div class="b1"> Block 1 </div>
<div class="b2"> Block 2</div>
<div class="big"> Big Data block</div>
</body></html>
P.P.S. Я помещаю границу на видимую, указываю только те divs, я не буду иметь ее в окончательной разметке
Это называется _responsive design_. Просмотрите медиа-запросы. – SLaks
Не могли бы вы пояснить, что вы имеете в виду под «медиа-запросами»? – Budda
Google - ваш друг. Найдите эти две фразы, индивидуально –