CSS для HTML-интерфейса: Заполнение окна браузера
При использовании HTML 5 в качестве интерфейса приложения хочется точно настроить интерфейс под окно браузера.
Напротив, когда речь идет о веб-странице, если интерфейс является плавным, его ширина соответствует текущей ширины браузера, но может превышать длину окна.
В случае с приложением браузер должен путаться с ним: они делают только одно. Таким образом, когда пользователь расширяет окно браузера, он делает это, чтобы увеличить площадь приложения, поэтому оно должно соответствовать по ширины и высоте новым размерам браузера .
Приложение, как правило, имеет фиксированные элементы высоты, такие как панель инструментов и другие компоненты, и контейнеры с различными размерами, поэтому они должны меняться в зависимости от размера браузера, в то время как другие остаются несъемными.
Щелкните изображение для демонстрации
В нашем примере слои «Левая панель» и «Правая панель» различаются по ширины и высоте в зависимости от размера окна. Верхний и нижний колонтитулы имеют фиксированное положение и фиксированную высоту. Только их ширина соответствует ширины окна браузера.
Мы делаем такой интерфейс со специально изученной таблицей стилей и проверим на демо, что ты можешь изменить размер окна по желанию, приложение всегда занимает всю поверхность.
HTML-код
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>HTML 5 Interface Demo </title> </head> <body> <div id="container"> <div id="outer"> <div id="header">En-tête</div> <div id="inner"> <div id="lpane">Panel gauche</div> <div id="rpane">Panel droit</div> </div> </div> <div id="footer">Pied de page</div> </div> </body> </html>
Тег контейнера содержит out и footer. Тег outer содержит header и inner. Врожденный слой разделен на две соседние панели. Ширина и высота обеих панелей зависит от размера окна.
Код CSS
div { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } #container { position:absolute; top:0; left:0; height:100%; width:100%; padding-bottom:40px; overflow:hidden; } #header { width:100%; height:64px; } #outer { margin:0px auto; width:100%; height:100%; } #inner { margin:0px; min-width:480px; height:100%; background:white; padding:0 0 64px 0; text-align:center; } #lpane, #rpane { display:inline-block; width:49.5%; height:100%; margin:0px; min-width:120px; background:white; overflow:hidden; text-align:left; } #footer { height:40px; }
Свойство box-sizing: border-box применяется ко всем слоям документа. Это позволяет избежать увеличения размера слоев внутренними полями. Это облегчает управление размерами.
# контейнер в абсолютной позиции. Это важно, так как определяет поведение всех внутренних слоев .
# footer включен в # контейнер. Поскольку padding-bottom имеет 40 пикселей, это ограничивает высоту первого элемента содержимого (# outer) и оставляет место для второго элемента, который всегда виден и внизу страницы .
# header имеет фиксированную высоту и переменную ширину .
# outer и # iner подразделяют страницу по высоте, это чисто слои компоновки и у них нет чистого содержимого.
# outer имеет 100% высоту, но он смещен на 64 пикселей на верхний колонтитул, а также перекрывает нижний колонтитул. Чтобы избежать этого, ему приписывают нижний паддинг на 64px.
# lpane и # rpane соответствуют двум панелям, разделяющим содержимое. Ширина 49,5% и режим отображения: inline-block позволяют выровнять их бок о бок. Будьте осторожны, просто измените поля, чтобы потерять это выравнивание. Если вы хотите создать поля, они также будут назначены элементам, содержащимся в них. Точно так же, если ты хочешь прокрутить их содержимое, ты добавишь внутренний слой со свойством overflow: auto.
Демонстрационная лицензия и таблица стилей: Creative Common. Вы можете использовать демонстрацию для собственных приложений (подумайте о снятии тега мета-роботов) или для офлайн-обучения. Не используйте его для онлайн-учебника .