Height=100%/height=100vh выходит за пределы экрана

Я установил высоту: 100%, но она выходит за пределы экрана, как мне ограничить высоту, чтобы она не выходила за пределы нижнего колонтитула.

Полоса прокрутки не должна выходить за нижний колонтитул. Если вы проверите полосу прокрутки для #two , ее нижний конец не будет виден, но я хочу, чтобы высота #two была ограничена до нижнего колонтитула, поэтому нижний конец прокрутки должен быть выше нижнего колонтитула.

p {
  display: block;
  background: #eee;
}

#one>p {
  height: 100%;
}

#two>p {
  height: 100vh;
  overflow-y: scroll;
}

.nimbusfooter {
  left: 0;
  right: 0;
  bottom: 0;
  position: fixed;
  color: white;
  background: black;
  padding: 5px;
  font-size: 10pt;
  line-height: 23.5px;
}

.footernav {
  color: white;
  text-decoration: underline;
}

.footernav1 {
  color: white;
  text-decoration: underline;
}
<div id = "one" style = "height:50px">
  <p>100% Height</p>
</div>
<div id = "two" style = "height:50px">
  <p>100vh Height</p>
</div>
<footer class = "nimbusfooter">
  <span>&copy; <span>{{currentYear}}</span>{{'FOOTER' | translate}}</span>
  <span style = "float:right;">
        <a class = "footernav" >{{'ACCESSIBILITY' | translate}}</a>&nbsp;&nbsp;&nbsp;
        <a class = "footernav1" >{{'PRIVACY_AND_LEGAL' | translate}}</a>&nbsp;&nbsp;&nbsp;
        <a class = "footernav" >{{'SITEMAP' | translate}}</a>
      </span>
</footer>

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

Dwaipayan Chakroborty 19.01.2023 09:55

например, попробуйте исправить размер: html/body

Dwaipayan Chakroborty 19.01.2023 09:56

может быть много причин, многие из которых связаны с вашей html-структурой. Сначала проверьте в инструментах разработки, где и когда это происходит. Проверьте пользовательский агент, если он не добавляет поля или отступы...

pier farrugia 19.01.2023 10:14

Если вы также не установите для поля тела значение 0, то установка ширины и высоты на 100% приведет к переполнению экрана.

Adam 19.01.2023 10:20

@DwaipayanChakroborty Я только что добавил пример, пожалуйста, посмотрите

Lucifer 19.01.2023 10:49

@ Адам, я только что добавил пример, пожалуйста, посмотри

Lucifer 19.01.2023 10:49
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
3
6
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это то, что вы ищете? Размеченный код ниже. Напишите комментарий, если нет.

/* made the body 100vh tall with no margins so no overflow bars will appear on the body */
body {
  margin:0;
  height: 100vh;
  
  /*make children flex items so we can use flex-grow and flex-shrink to control their size */
  display: flex;
  flex-direction:column;
}

body > div  {
  /* make the div elements (i.e. not the footer which is a <footer> element) grow to fit the available space */
  flex-grow:1;
}

p {
  /* removed the display: block from these. not really needed */
  background: #eee;
  height: 100%;
}

#two {
  overflow-y: scroll;
}

.nimbusfooter {
  color: white;
  background: black;
  padding: 5px;
  font-size: 10pt;
  line-height: 23.5px;
  flex-grow:0;
  flex-shrink:1;
}

.footernav, .footernav1 {
  color: inherit; /* changed this from white to inherit, so always adopts parent value */
  text-decoration: underline;
}
<div id = "one" style = "height:50px">
  <p>100% Height</p>
</div>
<div id = "two" style = "height:50px">
  <p>100vh Height</p>
</div>

<footer class = "nimbusfooter">
  <span>&copy; <span>{{currentYear}}</span>{{'FOOTER' | translate}}</span>
  <span style = "float:right;">
    <a class = "footernav">{{'ACCESSIBILITY' | translate}}</a>&nbsp;&nbsp;&nbsp;
    <a class = "footernav1">{{'PRIVACY_AND_LEGAL' | translate}}</a>&nbsp;&nbsp;&nbsp;
    <a class = "footernav">{{'SITEMAP' | translate}}</a>
  </span>
</footer>

Другие вопросы по теме