Как я могу сделать div 100% фиксированной высоты?
Я хочу, чтобы div с высотой 100%, но фиксированной позиции, как справа на этом сайте: http://www.dast2.com/
Я знаю, что это необходимо: высота:100%; Положение: фиксированный;
но это не работает для меня.
5 ответов
Старый, но здесь это идет:
div#sidebar {
position: fixed;
top: 0px;
bottom: 0px
}
Попробуй это:
<body>
<div id="sidebar">
</div>
</body>
<style>
div#sidebar {
position: fixed;
background-color : #00FF00;
height: 100%;
width: 300px;
overflow: hidden;
}
</style>
Использование vh:
Высота области просмотра (vh). Эта единица измерения зависит от высоты области просмотра. Значение 1vh равно 1% высоты области просмотра.
height: 100vh;
Браузеры не очень хорошо рассчитывают высоту.height: auto
означает "получить ту же высоту, что и ваш контент". Но height: 100%
не всегда хорошо играет, потому что содержимое элемента определяет его высоту. Так что рост тела определяется его содержанием. Поэтому, когда вы даете указание вашему контенту иметь height: 100%
Вы указываете, что он имеет ту же высоту, что и тело, но тело имеет такую же высоту, что и содержимое, поэтому вы указываете, что он должен быть таким же высоким, как и он сам.
Вы должны предоставить высоту body и html (корневой элемент).
В этом случае я сделал демо, которое я предоставил элемент HTML насмешкой height: 10000px
,
Для боковой панели (красного цвета) вам нужно только min-height: 100%
имущество. Боковая панель займет все свое вертикальное пространство, как вы можете видеть в демонстрации ниже. Только что добавлен position: fixed;
а также right:0
чтобы исправить это справа.
Вот демо
Краткое замечание: если вы когда-нибудь захотите получить такой же эффект на живом сайте, просто осмотрите страницу с помощью инструментов разработчика и возьмите разметку css/, соответствующую вашим потребностям.
Ура!
Я думаю, что один из контейнеров принимает max-width, проверьте все контейнеры в вас. Я думаю, что один из контейнеров принимает свойство max-width, проверьте контейнер, который содержит div.
Вам нужно иметь "Display: block", чтобы он работал.
HTML:
<body>
<div class="container">
<div class="content">
<p>Top bit</p>
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<p>Some content</p>
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br />
<p>Bottom bit</p>
</div>
<div class="fullHeight sidebar">
<h1>Sticky sidebar</h1>
</div>
</div>
</body>
CSS:
.container {width: 1000px; margin: 0 auto; overflow: hidden; position: relative;}
.content {width: 690; float: left; position: relative;}
.fullHeight {height: 100%; display: block; overflow: hidden; position: fixed; width: 300px; background: red; right: 0; top: 0;}
Я сделал фон красным, чтобы вы могли скопировать этот код, чтобы увидеть, работает ли он. Я должен признать, что я не проверял это; но я вполне уверен, что это делает свое дело. Дайте мне знать, если это не сработает; тогда я проверю и исправлю это.
И не забывайте иметь "Положение: относительное"; на элементе, который фиксированный элемент внутри - так что он "знает", к чему он должен быть фиксирован относительно. Если он не находится внутри контейнера или чего-либо (как у меня выше), тогда вы можете поставить "Position:lative;" на бирке тела; вот так:
body {position: relative;}