CSS для HTML-интерфейса: Заполнение окна браузера

При использовании HTML 5 в качестве интерфейса приложения хочется точно настроить интерфейс под окно браузера.

Напротив, когда речь идет о веб-странице, если интерфейс является плавным, его ширина соответствует текущей ширины браузера, но может превышать длину окна.

В случае с приложением браузер должен путаться с ним: они делают только одно. Таким образом, когда пользователь расширяет окно браузера, он делает это, чтобы увеличить площадь приложения, поэтому оно должно соответствовать по ширины и высоте новым размерам браузера .
Приложение, как правило, имеет фиксированные элементы высоты, такие как панель инструментов и другие компоненты, и контейнеры с различными размерами, поэтому они должны меняться в зависимости от размера браузера, в то время как другие остаются несъемными.

Interface HTML de taille adaptable

Щелкните изображение для демонстрации

В нашем примере слои «Левая панель» и «Правая панель» различаются по ширины и высоте в зависимости от размера окна. Верхний и нижний колонтитулы имеют фиксированное положение и фиксированную высоту. Только их ширина соответствует ширины окна браузера.

Мы делаем такой интерфейс со специально изученной таблицей стилей и проверим на демо, что ты можешь изменить размер окна по желанию, приложение всегда занимает всю поверхность.

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. Вы можете использовать демонстрацию для собственных приложений (подумайте о снятии тега мета-роботов) или для офлайн-обучения. Не используйте его для онлайн-учебника .