#html #css
#HTML #css
Вопрос:
У меня адаптивная веб-страница. Моя проблема в том, что нижний колонтитул оказывается в середине страницы, когда он отображается на устройстве с маленьким экраном. Когда я тестирую на устройствах с шириной менее 1200 пикселей, нижний колонтитул заканчивается сразу после положения экрана. Это то, что я получаю на маленьком экране (ширина менее 1200 пикселей):
И на экране с разрешением более 1200 пикселей (это то, что я должен получить на устройствах с меньшим экраном):
Где:
- ЗЕЛЕНЫЙ — размер страницы
- КРАСНЫЙ — размер экрана
- СИНИЙ нижний колонтитул
И там идет мой код:
<footer>
<p>Footer text</p>
<footer>
.
footer {
position: relative;
bottom: 0;
clear: both;
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
РЕДАКТИРОВАТЬ: position: fixed;
не решает, так как мне это нужно внизу страницы, а не на экране.
Комментарии:
1. Можете ли вы показать нам свой полный код?
2. используйте
position:fixed;
3. Я хочу, чтобы нижний колонтитул был внизу страницы, а не на экране. Это
position: fixed
не решает проблему4. Вы пробовали устанавливать нижний колонтитул с позицией: фиксированный и снизу: 0?
Ответ №1:
footer {
position: fixed;
width: 100%;
bottom: 0;
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
@media screen and (min-width: 500px) {
footer {
position: relative;
}
}
<footer>
<p> Footer Text here</p>
</footer>
В примере точка разрыва 500px
равна и нет 1200px
. Попробуйте изменить размер окна вашего браузера и посмотрите, как это происходит.
Ответ №2:
Проблема, которую вы пытаетесь решить, называется липким нижним колонтитулом, и ее не следует решать position: fixed
. Есть другое решение, которое даст вам лучшие результаты, например, с помощью Flexbox
HTML
<body class="Site">
<header>…</header>
<main class="Site-content">…</main>
<footer>…</footer>
</body>
CSS
.Site {
display: flex;
min-height: 100vh;
flex-direction: column;
}
.Site-content {
flex: 1;
}
Подробнее об этом здесь: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer /
Ответ №3:
По неизвестным причинам высота была установлена слишком на 100% для устройств размером менее 1200 пикселей. CSS:
@media screen and (max-width: 1200px) {
#base {
....
height: 100%;
}
}
Удалил только эту строку, и все работает. Была такая структура страницы:
<body>
....
<div id="base">
.....
</div>
</body>
<footer>..</footer>