#html #css #scroll #height
#HTML #css #прокрутка #высота
Вопрос:
Я разрабатываю веб-приложение, которое должно иметь вид настольного приложения. Я хочу, чтобы мой макет использовал всю высоту окна браузера (ни больше, ни меньше). Я создал изображение, которое показывает предполагаемую структуру страницы.
Другими словами, я не хочу, чтобы пользователь мог прокручивать всю страницу, а скорее разные разделы страницы. Аналогично тому, как работает большинство настольных приложений.
Я прочитал все о том, как создавать столбцы одинаковой высоты и т.д., Но ни одно из найденных мной решений не добавляет прокрутку к различным разделам вместо всей страницы, и по-прежнему использует всю высоту окна.
Я надеюсь, что у кого-нибудь есть решение этой проблемы, это было бы потрясающе. Я часами гуглил.
Ответ №1:
Если вы знакомы с jQuery, пожалуйста, смотритеhttp://layout.jquery-dev.net/demos.cfm .
Там также есть другие плагины, подобные этому.
Комментарии:
1. Это ОТЛИЧНОЕ решение… очень просто и множество функций!
Ответ №2:
Это должно обеспечить вам 90% пути к этому:
Однако рассматривали ли вы возможность использования фреймворка JavaScript, такого как Ext JS? Взгляните на некоторые демонстрации:http://dev.sencha.com/deploy/ext-4.0.1/examples /
html, body {
margin: 0;
padding: 0
}
#container > div {
position: absolute
}
#header {
top: 0;
width: 100%;
background: cyan;
height: 40px
}
#nav {
top: 40px;
bottom: 0;
left: 0;
width: 150px;
background: #ccc;
overflow-y: auto
}
#content {
top: 60px;
bottom: 0;
left: 150px;
right: 0;
background: #eee;
overflow-y: auto
}
#error {
top: 40px;
left: 150px;
right: 0;
height: 20px;
background: #444
}
<div id="container">
<div id="header"></div>
<div id="nav"><br /></div>
<div id="error"></div>
<div id="content"></div>
</div>
Комментарии:
1. Этот фрагмент HTML / CSS сработал как нельзя лучше, большое спасибо! Именно то, что мне было нужно. Я еще не рассматривал фреймворк JavaScript, я бы предпочел сохранить его как можно более легким. Вы бы сказали, есть ли какие-либо недостатки в использовании HTML / CSS вместо Ext JS, например?
2. @Christofer Eliasson: Я не знаю точно, что вы делаете, но вы сказали
"the feeling of a desktop app"
, что мгновенно заставляет меня думать, что вам следует по крайней мере проверить Ext JS, потому что он может делать некоторые очень классные вещи в стиле «рабочего стола»: dev.sencha.com/deploy/ext-4.0.1/examples/layout/complex.html — однако это может быть просто чрезмерным усложнением.3. Я согласен с вами, это потрясающий пример, и что-то очень близкое к тому, что я искал. Я подробнее рассмотрю Ext JS.
Ответ №3:
В вашем случае может пригодиться CSS-трюк: объявите позицию элемента абсолютной, установите верхнюю позицию равной 0, установите нижнюю позицию равной 0. Высота элемента не должна быть определена или определена как auto .
Чем элемент равен высоте его родительского элемента.
вероятно, это может помочь создать макет, который вы ищете.
пример кода :
<html>
<head>
<style type="text/css">
.container {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
.header {
height: 40px;
background: #aabbff;
}
.contentLeft {
position: absolute;
top: 40px;
bottom: 20px;
left: 0;
width: 40%;
overflow: auto;
background: #eeeeff;
}
.contentRight {
position: absolute;
top: 40px;
bottom: 20px;
right: 0;
width: 60%;
overflow: auto;
background: #ddddff;
}
.bottom {
position: absolute;
bottom: 0;
left: 0;
right: 0;
border: 3px solid blue;
height: 14px;
background: #9999ff;
}
</style>
</head>
<body>
<div class="container">
<div class="header"></div>
<div class="contentLeft"></div>
<div class="contentRight"></div>
<div class="bottom"></div>
</div>
</body>
</html>
Ciao,
Нико