Как прекрипить футер к самому нижу?

Ссылка скопирована
26 апреля 2026 1 ответ

Здравствуйте, столкнулся с проблемой то что контент(Изображения и текст) проходят через футер и сам футор не закреплен в самом нижу. Помогите исправить, заранее спасибо) (Использую препроцессор SCCS)

Как прекрипить футер к самому нижу?

<footer class="footer">     <div class="footer__social">       <a href="/" class="footer__vk"><img src="./images/Vk.svg" alt=""></a>       <a href="/" class="footer__discord"><img src="./images/Discord.svg" alt=""></a>       <a href="/" class="footer__telegram"><img src="./images/Telegram.svg" alt=""></a>   </div>   </footer>

<footer class="footer"> <div class="footer__social"> <a href="/" class="footer__vk"><img src="./images/Vk.svg" alt=""></a> <a href="/" class="footer__discord"><img src="./images/Discord.svg" alt=""></a> <a href="/" class="footer__telegram"><img src="./images/Telegram.svg" alt=""></a> </div> </footer>

.footer {     background-color: #0e0e0e;     width: 1903px;     height: 104px;     top: 1023px;     margin-top: auto;     position: relative;     &__social {       display: flex;       justify-content: center;       gap: 9px;     }     &__vk {       display: block;       background-repeat: no-repeat;       background-size: cover;       width: 75px;       height: 35px;       margin-top: 7px;       position: relative;     }     &__discord {       display: block;       background-repeat: no-repeat;       background-size: cover;       width: 102px;       height: 35px;       margin-top: 7px;       position: relative;     }     &__telegram {       display: block;       background-repeat: no-repeat;       background-size: cover;       width: 111px;       height: 35px;       margin-top: 7px;       position: relative;     } }

.footer { background-color: #0e0e0e; width: 1903px; height: 104px; top: 1023px; margin-top: auto; position: relative; &__social { display: flex; justify-content: center; gap: 9px; } &__vk { display: block; background-repeat: no-repeat; background-size: cover; width: 75px; height: 35px; margin-top: 7px; position: relative; } &__discord { display: block; background-repeat: no-repeat; background-size: cover; width: 102px; height: 35px; margin-top: 7px; position: relative; } &__telegram { display: block; background-repeat: no-repeat; background-size: cover; width: 111px; height: 35px; margin-top: 7px; position: relative; } }

Дополнительно:

position: absolute;
bottom: 0;

  • aspirantes, Не чего не изменилось
  • Zumich,

    position: fixed;
    bottom: 0;

  • scss на данном этапе должен быть под запретом.
    далее - реально понимать правила, которое ты пишешь.
    width: 1903px;     height: 104px;     top: 1023px;     margin-top: auto;     position: relative;

    width: 1903px; height: 104px; top: 1023px; margin-top: auto; position: relative;

    ширина 1903px - зачем? у меня например на буке 13чего-то, есть монитор на 1600 и еще один на 1920. как мне это все скролить?

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

    фиксированная высота - это экстраординарный случай в вебе. а если надо текст в две строки или описание больше.... это фу....

    top: 1023px; - при position: relative; это означает смести элемент на 1023 рх относительно того где он должен быть.....

  • aspirantes, не давай плохие ответы и советы на возможно глупый вопрос. Иначе тебе придёт в поддержку сайт с такой версткой.
  • Froggyweb, Не существуют плохие инструменты, но бывают кривые руки.
  • aspirantes,

    Не существуют плохие инструменты, но бывают кривые руки.

    Ммм, молодость и наивность, как мило...

  • aspirantes, ну да, когда не было гридов и флексов, приходилось извращаться и так, как вы пишете. Но сейчас-то зачем такое советовать?
  • Zumich, в современном мире, футер прибивают к низу страницы флексами или гридами. Способы многократно описаны и легко гуглятся по запросу "липкий футер", "sticky footer".
    Вариант с флексами более предпочтителен при разной структуре страниц. Например, если не все страницы четко состоят из header, main, footer. Тогда проще задать flex-grow для main, чем думать для которой строки на какой странице задать 1fr в гриде.

    На вашей странице футер уже встанет на приличное место, если прекратить задавать ему свойства, смысл которых вы не понимаете. А именно про relative и координаты.

    Высоту в верстке тоже стараются не задавать. Мы никогда не знаем сколько будет контента (в том числе он может различаться и в разных языковых версиях), шрифт, который окажется у пользователя и т.д.
    Так что у футера её лучше убрать.

    Зачем вы пишете три раза одинаковые свойства для трех соц.сетей. А если их будет 10? Так и будете долбить? Может всё таки им один общий класс задать?

  • Ответы:

    Прежде всего хочу сказать, что в вашем коде есть намёк на БЕМ и вы даже используете SCSS, но при этом вы вообще не используете переиспользование БЭМ-классов. Почитайте, пожалуйста, об этой методологии и избавьтесь от каши в стилях.

    Ответ на ваш вопрос:
    https://dimox.name/press_footer_bottom_with_css/

    <body>   <header>     <!-- Ваш хедер -->   </header>    <main>     <!-- Основной контент страницы -->   </main>    <footer>     <!-- Ваш футер -->   </footer> </body>

    <body> <header> <!-- Ваш хедер --> </header> <main> <!-- Основной контент страницы --> </main> <footer> <!-- Ваш футер --> </footer> </body>

    *, *::before, *::after {    margin: 0;   padding: 0; } html {   height: 100%; }  body {   height: 100%;   display: flex;   flex-direction: column; }  body {   flex: 1; /* Расширяет основной контент на все доступное пространство */ }  header, footer {   flex-shrink: 0; /* Предотвращает сжатие хедера и футера */ }

    *, *::before, *::after { margin: 0; padding: 0; } html { height: 100%; } body { height: 100%; display: flex; flex-direction: column; } body { flex: 1; /* Расширяет основной контент на все доступное пространство */ } header, footer { flex-shrink: 0; /* Предотвращает сжатие хедера и футера */ }

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Сергей Миронов Ответ

    Для того чтобы прекрепить футер к самому низу страницы, существует несколько способов. Вот некоторые из них:

    1. Использование CSS:
    Вы можете использовать CSS для прекрепления футера к нижней части страницы. Для этого установите высоту контейнера (например, `min-height: 100vh;`) и задайте фиксированную позицию для футера (например, `position: fixed; bottom: 0;`). Вот пример CSS:

    footer {
       position: fixed;
       bottom: 0;
       width: 100%;
       background-color: #333;
       color: #fff;
       text-align: center;
    }

    footer { position: fixed; bottom: 0; width: 100%; background-color: #333; color: #fff; text-align: center; }

    2. Использование Flexbox:
    Flexbox - это мощный инструмент для создания гибких макетов. Вы можете использовать Flexbox для прекрепления футера к нижней части страницы. Просто оберните содержимое страницы в контейнер с `display: flex; flex-direction: column; min-height: 100vh;` и задайте футеру свойства `margin-top: auto;`. Вот пример CSS:

    .container {
       display: flex;
       flex-direction: column;
       min-height: 100vh;
    }
     
    main {
       flex: 1;
    }
     
    footer {
       margin-top: auto;
       background-color: #333;
       color: #fff;
       text-align: center;
    }

    .container { display: flex; flex-direction: column; min-height: 100vh; } main { flex: 1; } footer { margin-top: auto; background-color: #333; color: #fff; text-align: center; }

    3. Использование Grid:
    Если вы предпочитаете Grid вместо Flexbox, вы также можете использовать его для прекрепления футера к нижней части страницы. Создайте сетку с помощью свойства `display: grid;` и установите высоту контейнера на `min-height: 100vh;`. Затем задайте футеру свойство `grid-row: 2;` для помещения его в конец страницы. Вот пример CSS:

    .container {
       display: grid;
       grid-template-rows: auto 1fr auto;
       min-height: 100vh;
    }
     
    footer {
       grid-row: 3;
       background-color: #333;
       color: #fff;
       text-align: center;
    }

    .container { display: grid; grid-template-rows: auto 1fr auto; min-height: 100vh; } footer { grid-row: 3; background-color: #333; color: #fff; text-align: center; }

    Выберите подход, который лучше всего подходит для вашего проекта и примените его к вашему коду. Надеюсь, это поможет вам прекрепить футер к самому низу страницы!

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно