#html #css #footer
Вопрос:
Я хочу переместить нижний колонтитул в нижнюю часть страницы, и поскольку на странице не так много содержимого, нижний колонтитул всплывает и не перемещается вниз.
Я попытался расположить нижний колонтитул как фиксированный элемент в качестве обходного пути, и это работает, но не в этом состоянии:
В этом измерении нижний колонтитул ведет себя так, как вы видите, и это вполне ожидаемо, следовательно, показывает лазейку в моем обходном пути.
Это адрес веб-сайта: https://n-ii-ma.github.io/Portfolio-Website/contact.html
Вот коды для этой части:
/* Contact Footer */
.contact-footer {
position: fixed;
bottom: 10px;
left: 0;
right: 0;
}
<body>
<header>
<h1 class="main-title">Nima's Portfolio</h1>
<nav class="navigation">
<ul>
<li>
<a href="./index.html">Home</a>
</li>
<li>
<a href="./index.html#projects">Projects</a>
</li>
<li>
<a href="./contact.html">Contact Me</a>
</li>
</ul>
</nav>
</header>
<main>
<section class="contact-section">
<h2>Contact Me</h2>
<p>Use the links below to contact me and I'll reach out to you as soon as possible</p>
<div class="links">
<a href="https://github.com/n-ii-ma" target="_blank">
<i class="fab fa-github fa-3x"></i>
</a>
<a href="#">
<i class="fas fa-envelope-square fa-3x"></i>
</a>
</div>
</section>
</main>
<footer class="contact-footer">amp;copy; All Rights Reserved</footer>
</body>
Есть ли способ, чтобы мой нижний колонтитул всегда оставался внизу страницы?
Комментарии:
1. Вопрос неясен, поэтому нижний колонтитул уже закреплен внизу, не могли бы вы подробнее объяснить, что вы пытаетесь здесь реализовать?
2. @TariqSaeed Я обновил вопрос. Надеюсь, теперь все ясно.
3. Я видел ссылку на пример, которую вы оставили, но она действительно находится внизу страницы. Вы хотите, чтобы он оставался внизу белого раздела, а не внизу всей страницы?
4. Кайо, я думаю, он не хочет, чтобы это было слоисто поверх других элементов. он хочет нажать его только внизу, если содержимое страницы меньше, чтобы нижний колонтитул оставался в нижней части окна просмотра, когда прокрутки нет.
5. @tacoshy Да, это именно то, чего я хотел, и ваше решение полностью решило мою проблему. Спасибо миллиард раз!
Ответ №1:
Простое решение, которое полностью поддерживается, — это использование Flexbox.
- Мы придаем корпусу
min-height: 100vh
форму а, чтобы он занимал, по крайней мере, всю высоту видовых экранов. - Поле основного текста по умолчанию приведет к переполнению страницы по умолчанию. Чтобы противостоять этому, нам нужно сбросить маржу с:
margin: 0
- Мы снова добавляем отступ. Поле по умолчанию в большинстве браузеров составляет 8 пикселей. ПОЭТОМУ я выбрал это. Ты можешь брать все, что тебе заблагорассудится.
- Заполнение также приведет к переполнению из-за модели коробки. Чтобы противостоять этому, мы используем:
box-sizing: border-box
- Затем мы используем flexbox:
display: flex
. - Для поддержания нормального поведения на уровне блоков мы используем:
flex-direction: column
- Чтобы нажать нижний колонтитул внизу, мы используем:
margin-top: auto;
. Это переместит нижний колонтитул в нижнюю часть страницы, если содержимое страницы меньше высоты окна просмотра.
body {
margin: 0;
padding: 8px;
box-sizing: border-box;
min-height: 100vh;
display: flex;
flex-direction: column;
}
footer {
margin-top: auto;
}
<body>
<header>
<h1 class="main-title">Nima's Portfolio</h1>
<nav class="navigation">
<ul>
<li>
<a href="./index.html">Home</a>
</li>
<li>
<a href="./index.html#projects">Projects</a>
</li>
<li>
<a href="./contact.html">Contact Me</a>
</li>
</ul>
</nav>
</header>
<main>
<section class="contact-section">
<h2>Contact Me</h2>
<p>Use the links below to contact me and I'll reach out to you as soon as possible</p>
<div class="links">
<a href="https://github.com/n-ii-ma" target="_blank">
<i class="fab fa-github fa-3x"></i>
</a>
<a href="#">
<i class="fas fa-envelope-square fa-3x"></i>
</a>
</div>
</section>
</main>
<footer class="contact-footer">amp;copy; All Rights Reserved</footer>
</body>