У мене є дві діви, як показано нижче:
<div class="header">
<h1>My Cool Site</h1>
</div>
<div class="main">
Hello world
</div>
Заголовок діва повинен займати стільки місця, скільки в ньомупотреби. Основний розділ повинен точно заповнити решту висоти сторінки - смуга прокрутки не повинна з’являтися. Чи можливо це робити тільки з CSS? Немає JavaScript. Ось моя невдала спроба зробити це: http://jsfiddle.net/nareshbhatia/HrsHR/
Редагувати: Я трохи змінив jsFiddle, щоб уточнитинамір, що область вмісту повинна розширюватися на повну висоту. Вміст "головного" тепер замінено елементом SVG, який тягнеться до всієї площі діва.
Відповіді:
0 для відповіді № 1Спробуйте скористатися calc ()
.main {
background-color: #BAA378;
border: 10px solid #453823;
padding: 10px;
height: calc(100% - 60px); /* 100% - height of header */
}
Або ви можете кинути це і використовувати jQuery:
layout = (function () {
var w = $(window).height();
var h = $(".header").outerHeight();
var x = w - h;
$(".main").outerHeight(x);
});
$(document).ready(layout);
$(window).resize(layout);
0 для відповіді № 2
Спробуйте це рішення. Це розташувати вашого дива внизу.
.main {
background-color: #BAA378;
border: 10px solid #453823;
padding: 10px;
height: 86%;
position:fixed;
bottom: 0;
width: 100%;
}
0 для відповіді № 3
Ви можете створити потрібний зовнішній виглядобгортку, щоб створити рамку замість вашого вмісту. Тоді ваш вміст div не займає повний зріст, але відображається в звичайному місці під заголовком і обробляється на висоту на overflow: hidden;
. Трохи обману, щоб помістити заголовок на рамку обгортки, і у вас є те, що вам потрібно принаймні на вигляд.