Скрыть прокручиваемое содержимое за прозрачными фиксированными позициями 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>