Как я могу сделать 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>

вот живое демо

.bg-container{ 
  position: fixed;
  width: 100%;
  height: 100%; 
}

Использование 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/, соответствующую вашим потребностям.

Ура!

html, body{height:100%;}

следуй этому и отдай 100% диву

Я думаю, что один из контейнеров принимает 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;}
Другие вопросы по тегам