2015-07-23 3 views
0

Я пытаюсь создать слайд-шоу изображений с фиксированным соотношением 4: 3, заполняя весь видовой экран на веб-сайте с фиксированным заголовком высоты 80 пикселей. Как я могу это сделать?Соотношение сторон содержания содержания с фиксированным заголовком высоты

This question довольно близко, но ему не хватает фиксированного заголовка.

Любая помощь?

Макет должен быть:

-------------------------------------  - 
| Header: height = 80px, width = 100% |  | 
-------------------------------------  | 
    |   Main div   |   > Total height = 100% 
    |  Fixed ratio = 4:3  |   | 
    |   Centered   |   | 
    -----------------------------   - 


|------------------v------------------| 
      Total width = 100% 

ответ

0

Следующий CSS делает трюк:

body { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
header { 
 
    width: 100vw; 
 
    height: 80px; 
 
    background: red; 
 
} 
 
article { 
 
    /* Get the height based on the available space (100 height - 80px) */ 
 
    height: calc(100vmin - 80px); 
 
    /* Get the width based on the available space and aspect ratio (height /3 * 4) */ 
 
    width: calc((100vmin - 80px)/3 * 4); 
 
    margin: 0px auto; 
 
    background: blue; 
 
}
<header></header><article></article>

Использование calc мы можем легко определить, что мы наш контрбукса иметь height от 100% - 80px, или calc(100vmin - 80px). Оттуда мы можем вычислить width объекта, используя тот же расчет. Я использую vmin для учета поведения на портретных экранах.

+0

Спасибо за ввод. Это работает, за исключением случаев, когда высота окна больше ширины, и в этом случае он переполняет div вместо того, чтобы держать все это в поле зрения. – fseixas

+0

@fseixas Я изменил его, чтобы использовать 'vmin', что отрицает эту проблему, давая мне самый низкий общий знаменатель между высотой и шириной окна просмотра. – somethinghere

+0

Это улучшает его, теперь он изменяет высоту в этом случае, но по-прежнему есть переполнение слева, то есть width> vw. – fseixas

Смежные вопросы