Изменение размера, а затем прокрутка окна браузера и абсолютное положение - PullRequest
1 голос
/ 07 февраля 2012

Используя демонстрационную версию html / css ниже, я получаю странную проблему с изменением размера окна.

Редактирование: Вот снимок экрана:

enter image description here

  1. Измените размер окна так, чтобы #mainContent отображал полосы прокрутки.

  2. Теперь используйте полосу прокрутки тела (внешняя правая - не полоса прокрутки # mainContent!)и перейдите к нижней части страницы.

  3. Я надеялся, что #mainContent изменит размер и заполнит страницу при прокрутке вниз, но это не так, размер остается прежним,таким образом, я получаю пустую область, которая не заполнена.

Есть ли в CSS только воспоминания об этом или мне нужен какой-то javascript?

Я виделэто решение в списке часть это решение в списке A List Apart .Однако он скрывает полосу прокрутки тела, поэтому мне это не очень помогает.

CSS:

#sideBar {
    left: 5px;
    overflow: auto;
    position: absolute;
    right: 5px;
    top: 0px;
    width: 235px;
    border: 1px solid black;
    height: 5000px; /*silly value just to ensure that scroll bar is visible*/
}

#mainContent
{
    position: absolute;
    right: 5px;
    top: 0px;
    bottom: 0px;
    left: 250px;
    overflow: auto;
    padding: 10px;
    border: 1px solid black;
}

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title></title>
    <link rel="stylesheet" type="text/css" href="test2.css"/>
</head>
<body>
    <div id="sideBar">
        <ul><li>Nav</li>
        </ul>
    </div>
    <div id="mainContent">
        <p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p><p>content</p>
    </div>
</body>

Спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Я не уверен, что полностью понимаю ту функциональность, которая вам нужна.

Но из того, что я понимаю, вы хотите изменить #maincontent на position: fixed.

http://jsfiddle.net/MY7fY/

#sideBar {
    left: 5px;
    overflow: auto;
    position: absolute;
    right: 5px;
    top: 0px;
    width: 235px;
    border: 1px solid black;
    height: 5000px; /*silly value just to ensure that scroll bar is visible*/
}

#mainContent
{
    position: fixed;
    right: 5px;
    top: 0px;
    bottom: 0px;
    left: 250px;
    overflow: auto;
    padding: 10px;
    border: 1px solid black;
}
0 голосов
/ 08 февраля 2012

используйте следующее css

body {
      height: 100%;
      padding: 0;
      margin: 0;
     }

#mainContent {
    height:100%;
    ...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...