2013-08-23 2 views
0

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

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

Проблема, с которой я сталкиваюсь, заключается в том, что полоса прокрутки контента перекрывается верхней панелью nav.

Я в настоящее время есть мой CSS настроить следующим образом:

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

.sideNav 
{ 
    width: 100px; 
    height: 100%; 
    float: right; 
    position: absolute; 
    top: 0; 
    left: 0; 
    background-color: green; 
    z-index: 3; 
} 

.topNav 
{ 
    width: 100%; 
    height: 65px; 
    background-color: gold; 
    float: right; 
    position: relative; 
    z-index: 2; 
    text-align: right; 
} 
.content 
{ 
width: 100%; 
height: 100%; 
z-index: 1; 
background-color: blue; 
overflow-y: scroll; 
box-sizing: border-box; 
-moz-box-sizing: border-box; 
position: absolute; 
bottom: 0; 
right: 0; 
padding-left: 100px; 
border: 2px red inset; 
margin-top: 65px; 
} 

Вот Скрипки, как я знаю, что это звучит странно: jsFiddle

Позвольте мне знать, если есть что-нибудь еще я могу предоставить. Я исчерпал все свои идеи.

+1

Я вижу, что вы описываете на jsFiddle, просто изменить размер окна результатов –

+1

следует рассмотреть возможность использования системы сетки, или по крайней мере вдохновить себя из него, вот пример кода https://github.com/twbs/bootstrap/blob/master/dist/css/bootstrap.css#L774-L1395 –

+0

@JonathandeM. Я не уверен, что вы имеете в виду, изменив размер окна результатов. Проблема, с которой я столкнулась, - это перекрытие верхнего навигационного покрытия, охватывающего полосу прокрутки в содержимом. Система сетки также не устранит эту проблему, что бы она ни была. –

ответ

0

У вас почти было это работает. Просто нужно было удалить поплавок на боковой панели (он позиционируется абсолютно, поэтому нет необходимости в нем), а затем смещает свое положение сверху с высоты верхнего навигатора. Как и ...

.sideNav 
{ 
    width: 100px; 
    height: 100%; 
    /*float: right; - not needed */ 
    position: absolute; 
    top: 65px; /* offset by the height of the top nav bar */ 
    left: 0; 
    background-color: green; 
    z-index: 3; 
} 
.content 
{ 
width: 100%; 
height: 100%; 
z-index: 1; 
background-color: blue; 
overflow-y: scroll; 
box-sizing: border-box; 
-moz-box-sizing: border-box; 
position: absolute; 
/* bottom: 0; - position from top instead for consistency */ 
top: 65px; 
right: 0; 
padding-left: 100px; 
border: 2px red inset; 
/* margin-top: 65px; - no longer needed */ 
} 

вот обновленная скрипка http://jsfiddle.net/7cRL3/

+0

Извините, я думаю, что не понял. Проблема, с которой я сталкиваюсь, находится в разделе содержимого, где полоса прокрутки перекрывается верхним номером –

+0

. Я добавил к своему ответу. – monners

+0

Правильно, но теперь нижняя часть полосы прокрутки отключена из-за того, что div имеет 65 пикселей сверху , См. Мою проблему? Единственный способ, который я могу придумать, - использовать функцию «calc» в высоте css. –