Скрыть прокручиваемое содержимое за прозрачными фиксированными позициями div при прокрутке страницы?

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

Я знаю много о css, но, похоже, не могу это понять. Я попытался установить переполнение в скрытое, но я знал, что это не сработает (и это не так).

Это очень сложно объяснить, поэтому я сделал все, что мог.

HTML:

<div id="header">
    <div id="topmenu">Home | Find Feeds | Subscriptions</div>
</div>
<div id="container">
    <div id="content">
        testing
    </div>
</div>

CSS

#header {
    margin:0 auto;
    position: fixed;
    width:100%;
    z-index:1000;
}
#topmenu {
    background-color:#0000FF;
    height:24px;
    filter: alpha(opacity=50);
    opacity: 0.5;
}

#leftlinks {
    padding: 4px;
    padding-left: 10px;
    float: left;
}

#rightlinks {
    padding: 4px;
    padding-right: 10px;
    float: right;
}

#containerfixedtop {
    width: 100%;
    height: 20px;
}

#contentfixedtop {
    margin: 0 auto;
    background-color: #DAA520;
    width: 960px;
    height:20px;
}

#container {
    position: relative;
    top: 68px;
    width: 100%;
    height: 2000px;
    overflow: auto;
}

#content {
    margin: 0 auto;
    background-color: #DAA520;
    width: 960px;
    height: 2000px;
}

Вот скриншот проблемы:

enter image description here

Ответы

Ответ 1

Просто подойти к этому поздно, но в случае, если кто-то еще столкнется с этим в будущем, вот ваше исправление.

Ваш код CSS:

.wrapper {
    width:100%;
    position:fixed;
    z-index:10;
    background:inherit;
}

.bottom-wrapper {
    width:100%;
    padding-top:92px;
    z-index:5;
    overflow:auto;
}

Ваш HTML:

<div class="wrapper">
    ...your header here...
</div>
<div class="bottom-wrapper">
    ...your main content here...
</div>

Это предоставит вам заголовок, который полностью соответствует вашему сайту и будет плавать вверху. Основной контент будет прокручиваться без заголовка и исчезать, когда он передает заголовок. Ваш верхний слой -bottom-wrapper-top должен быть высотой вашего содержимого оболочки заголовка.

Ура!

Ответ 2

Вероятно, вы ищете z-index. Он позволяет указать вертикальный порядок элементов на странице, поэтому элемент с z-index: 10 плавает над (визуально) элементом с z-index: 5.

Дайте контент z-index: 5 и посмотрите, работает ли он.

Ответ 3

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

HTML

<div id="full-size-background"></div>
 <div id="header">
  <p>Some text that should be fixed to the top</p>
</div>
<div id="body-text">
  <p>Some text that should be scrollable</p>
</div>

CSS

#full-size-background {
z-index:-1;
background-image:url(image.jpg);
background-position:fixed;
position:fixed;
top:0px;
left:0px;
width:100%;
height:100%;
}
#header {
position:fixed;
background-image:url(image.jpg);
height:150px;
width:100%;
}
#body-text {
margin-top:150px;
}

Это дает мне представление полного изображения страницы с прозрачным фиксированным заголовком, а когда содержимое тела прокручивается, оно скрывается за заголовком. Изображения выглядят бесшовными.

Вы могли бы сделать то же самое с сплошным цветом, хотя, возможно, было бы проще.

2 примечания: заголовок имеет высоту набора, я тестировал только в FF и Chrome.

Ответ 4

Есть ли #header высота набора?

#header {position: fixed; height: 100px; }
#container {position: absolute; top: 100px; bottom: 0; overflow: auto; }

Довольно уверен, что это не работает в IE, хотя...

Ответ 5

Исправить положение содержимого div ниже заголовка + переполнение-y содержимого div.

Ответ 6

  • У меня есть фиксированное фоновое изображение.
  • Фон заголовка прозрачен
  • Я не хочу, чтобы мой контент перекрывал мой прозрачный заголовок

Я придумал решение, прокручивающее div вместо тела:

<div>
    <div class="header"></div>
    <div class="content"></div>
</div>


.header { position: fixed; ... }
.content { position: fixed; height: calc(100% - HEADER_HEIGHT); overflow: scroll; }

Ответ 7

Я думаю, что поздно ответить. Но позже кто-то посмотрит, что это будет полезно.

Просто добавьте фон в класс заголовка

Вот код →

#header {
    margin:0 auto;
    position: fixed;
    width:100%;
    z-index:999;
    background-color:#FFFFFF;
}
#topmenu {
    background-color:#0000FF;
    height:24px;
    filter: alpha(opacity=50);
    opacity: 0.5;
   
}

#container {
    position: relative;
    top: 68px;
    width: 100%;
    height: 2000px;
    overflow: auto;
    z-index:1;
}

#content {
    margin: 0 auto;
    background-color: #DAA520;
    width: 960px;
    height: 2000px;
}
<!DOCTYPE html>
<html>


<body>

<div id="header">
    <div id="topmenu">Home | Find Feeds | Subscriptions</div>
</div>
<div id="container">
    <div id="content">
        testing
    </div>
</div>
</body>
</html>