Почему содержимое выходит за пределы тела, даже если высота установлена ​​на 100%?

Я практикуюсь в использовании CSS и HTML. И у меня проблема. Когда я добавляю больше изображений в <body>, оно переполняется и делает <footer> неправильным.

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html{
  height: 100%;
}
body {
  margin: 0;
  min-height: 100%;
  padding: 0;
  font-family: Arial, sans-serif;
  color: black;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #333;
  padding: 1rem;
}

h1 {
  font-size: 2.5rem;
  margin: 0;
  color: #fff;
  font-style: italic;
  font-weight: bold;
}

header.menu-icon {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 2rem;
  border-radius: 3px;
  cursor: pointer;
}

.menu-icon div {
  width: 35px;
  height: 5px;
  background-color: white;
  margin: 6px 0;
  cursor: pointer;
}

.center {
  margin: auto;
  width: 50%;
  padding: 10px;
  text-align: center;
}

.ticket-title {
  text-transform: uppercase;
  font-weight: bold;
  font-size: 2rem;
  padding: 10px;
}

.button-container {
  display: flex;
  justify-content: center;
  align-items: center;

}

.button {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  border: none;
  border-radius: 30px;
  padding: 1rem 2rem;
  font-weight: bold;
  font-size: 1.5rem;
  text-transform: uppercase;
  cursor: pointer;
  background-color: rgba(255, 0, 0, 0.5);
}

.ticket-price {
  font-size: 24px;
  font-weight: bold;
}

.ticket-location {
  font-weight: bold;
  font-size: 24px;
}

.ticket-start {
  font-size: 16px;
  margin-bottom: 20px;
  font-weight: lighter;
}

.image-container div {
  padding: 5px;
}

.image-container img {
  display: block;
  width: 70%;
}

footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #333;
  padding: 1rem;
}

.footer-nav {
  margin-top: 10px;
  margin-left: 10%;
  text-align: left;
}

.footer-nav a {
  color: #fff;
  text-decoration: none;
  margin-right: 20px;
}

.footer-nav a:hover {
  text-decoration: underline;
}

li {
  display: inline;
}

.fa {
  padding: 20px;
  text-align: center;
  margin: 5px 2px;
  font-size: 30px;
  width: 50px;
}

.fa-facebook {
  background: #3B5998;
  color: white;
}

.fa-instagram {
  background: #125688;
  color: white;
}

.fa-spotify {
  background: green;
  color: white;
}

.fa-youtube {
  background: #bb0000;
  color: white;
}
<header>
  <div>
    <h1>Elektrik Eel</h1>
  </div>
  <span class = "menu-icon">
    <div></div>
    <div></div>
    <div></div>
  </span>
</header>
<section class = "center">
  <div class = "ticket-title">Tickets</div>
  <div class = "button-container">
    <button class = "button">Book now</button>
  </div>
  <div class = "ticket-price">
    <p>
      Early bird: $205 (3 days)<br>
      Full price: $340 (3 days)<br>
      Single day; $110
    </p>
  </div>
  <div class = "ticket-location-container">
    <div class = "ticket-location">
      <div>Adelaide</div>
      <p class = "ticket-start">
        November 11th<br>
        Victoria Square<br>
        Starts 8pm
      </p>
    </div>
    <div class = "ticket-location">
      <div>Sydney</div>
      <p class = "ticket-start">
        November 15th<br>
        Opera on Sydney Harbour<br>
        Starts 8pm
      </p>
    </div>
    <div class = "ticket-location">
      <div>Melbourne</div>
      <p class = "ticket-start">
        November 20th<br>
        Melbourne Park<br>
        Starts 8pm
      </p>
    </div>
    <div>
      <p>
        Engage your senses and<br>
        become immersed in an<br> 
        electrifying aural universe
      </p>
    </div>
  </div>
  <div class = "image-container">
    <img src = "cat.jpg" style = "float: right; margin: 5%;" >
    <img src = "cat.jpg" style = "margin: 5%;">
    <img src = "cat.jpg" style = "float: right"> 
  </div>
  <!--
  <div class = "button-container">
    <button class = "button">Buy tickets</button>
  </div>
  -->
</section>
<footer>
  <div>
    <nav class = "footer-nav">
      <a href = "#">Artists</a><br>
      <a href = "#">Locations</a><br>
      <a href = "#">Merch</a><br>
      <a href = "#">About</a><br>
      <a href = "#">Contact</a>
    </nav>
  </div>
  <ul>
    <li>   
      <a href = "#" class = "fa fa-facebook"> </a>   
    </li>  
    <li>   
      <a href = "#" class = "fa fa-instagram"> </a>   
    </li>  
    <li>   
      <a href = "#" class = "fa fa-spotify"> </a>   
    </li>  
    <li>   
      <a href = "#" class = "fa fa-youtube"> </a>   
    </li>
  </ul>  
</footer>

Я попробовал установить высоту HTML 100% и минимальную высоту тела: 100%, размер окна: border-box.

Я ожидал, что все добавленные изображения будут в теле. Таким образом, высота тела регулируется в зависимости от содержимого.

Высота - не "высота"...

marc_s 14.04.2024 17:20

Исправьте HTML — элементы div внутри диапазона недействительны. Обычно рекомендуется пропустить код через валидатор. Также можно использовать функцию проверки инструментов разработчика браузера, чтобы точно увидеть, какой CSS применяется.

A Haworth 14.04.2024 17:24
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
2
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вам нужно добавить свойство clear в нижний колонтитул.

footer {
  clear: right;
}

Нижний колонтитул отображается неправильно, поскольку изображения имеют свойство float: right, поэтому вам нужно очистить правую часть нижнего колонтитула.

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