Footer ist nicht "sticky" am ende der Website

Diskutiere Footer ist nicht "sticky" am ende der Website im CSS Forum im Bereich Programmierung; Es ist irgendwie etwas ganz komisch... Der Footer der vom code her eigentlich sticky am ende der website seien sollte, ist es nicht. Ich habe bei...
  • Footer ist nicht "sticky" am ende der Website Beitrag #1
P
pingu
New member
Beiträge
3
Punkte Reaktionen
0
Es ist irgendwie etwas ganz komisch...
Der Footer der vom code her eigentlich sticky am ende der website seien sollte, ist es nicht.
Ich habe bei .footer auch mal provisorisch background: red; reingemacht, aber da passiert irgendwie auch nicht so viel..

kann mir da jemand helfen, ich und Chat GPT checken es nicht xD (bin noch anfänger)

hier der HTML code vom footer:


HTML:
<section class="footer">
  <div class="footer-row">
    <div class="footer-col">
      <h4>Info</h4>
      <ul class="links">
        <li><a href="#">About Us</a></li>
        <li><a href="#">Compressions</a></li>
        <li><a href="#">Customers</a></li>
        <li><a href="#">Service</a></li>
        <li><a href="#">Collection</a></li>
      </ul>
    </div>
    <div class="footer-col">
      <h4>Explore</h4>
      <ul class="links">
        <li><a href="#">Free Designs</a></li>
        <li><a href="#">Latest Designs</a></li>
        <li><a href="#">Themes</a></li>
        <li><a href="#">Popular Designs</a></li>
        <li><a href="#">Art Skills</a></li>
        <li><a href="#">New Uploads</a></li>
      </ul>
    </div>
    <div class="footer-col">
      <h4>Legal</h4>
      <ul class="links">
        <li><a href="#">Customer Agreement</a></li>
        <li><a href="#">Privacy Policy</a></li>
        <li><a href="#">GDPR</a></li>
        <li><a href="#">Security</a></li>
        <li><a href="#">Testimonials</a></li>
        <li><a href="#">Media Kit</a></li>
      </ul>
    </div>
    <div class="footer-col">
      <h4>Newsletter</h4>
      <p>
        Subscribe to our newsletter for a weekly dose
        of news, updates, helpful tips, and
        exclusive offers.
      </p>
      <form action="#">
        <input type="text" placeholder="Your email" required>
        <button type="submit">SUBSCRIBE</button>
      </form>
      <div class="icons">
        <i class="fa-brands fa-facebook-f"></i>
        <i class="fa-brands fa-twitter"></i>
        <i class="fa-brands fa-linkedin"></i>
        <i class="fa-brands fa-github"></i>
      </div>
    </div>
  </div>
</section>

CSS Code vom footer:


CSS:
.footer {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 1280px;
  width: 95%;
  background: red;
  border-radius: 6px;
}
.footer .footer-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 3.5rem;
  padding: 60px;
  background-color: darkslategrey;
}
.footer-row .footer-col h4 {
  color: #fff;
  font-size: 1.2rem;
  font-weight: 400;
}
.footer-col .links {
  margin-top: 20px;
}
.footer-col .links li {
  list-style: none;
  margin-bottom: 10px;
}
.footer-col .links li a {
  text-decoration: none;
  color: #bfbfbf;
}
.footer-col .links li a:hover {
  color: #fff;
}
.footer-col p {
  margin: 20px 0;
  color: #bfbfbf;
  max-width: 300px;
}
.footer-col form {
  display: flex;
  gap: 5px;
}
.footer-col input {
  height: 40px;
  border-radius: 6px;
  background: none;
  width: 100%;
  outline: none;
  border: 1px solid #7489C6 ;
  caret-color: #fff;
  color: #fff;
  padding-left: 10px;
}
.footer-col input:laceholder {
  color: #ccc;
}
 .footer-col form button {
  background: #fff;
  outline: none;
  border: none;
  padding: 10px 15px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  transition: 0.2s ease;
}
.footer-col form button:hover {
  background: #cecccc;
}
.footer-col .icons {
  display: flex;
  margin-top: 30px;
  gap: 30px;
  cursor: pointer;
}
.footer-col .icons i {
  color: #afb6c7;
}
.footer-col .icons i:hover  {
  color: #fff;
}
@media (max-width: 768px) {
  .footer {
    position: relative;
    bottom: 0;
    left: 0;
    transform: none;
    width: 100%;
    border-radius: 0;
  }
  .footer .footer-row {
    padding: 20px;
    gap: 1rem;
  }
  .footer-col form {
    display: block;
  }
  .footer-col form :where(input, button) {
    width: 100%;
  }
  .footer-col form button {
    margin: 10px 0 0 0;
  }
}
 
  • Footer ist nicht "sticky" am ende der Website Beitrag #2
L
Lupus
Member
Beiträge
24
Punkte Reaktionen
0
Schau da mal rein =>
 
  • Footer ist nicht "sticky" am ende der Website Beitrag #3
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
Ich habe mir das jetzt nur in einem breiten Browserfenster angesehen, ohne dass eine Mediaquery greift, und da ist das Problem relativ offensichtlich: Das translate wirkt auch auf die y-Achse und verschiebt den Footer nach oben. Ändere ich das auf translateX rutscht der Footer sofort nach unten an die untere Kante.
Code:
.footer {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    max-width: 1280px;
    width: 95%;
    background: red;
    border-radius: 6px;
}
 
  • Footer ist nicht "sticky" am ende der Website Beitrag #4
P
pingu
New member
Beiträge
3
Punkte Reaktionen
0
Ich habe mir das jetzt nur in einem breiten Browserfenster angesehen, ohne dass eine Mediaquery greift, und da ist das Problem relativ offensichtlich: Das translate wirkt auch auf die y-Achse und verschiebt den Footer nach oben. Ändere ich das auf translateX rutscht der Footer sofort nach unten an die untere Kante.
Danke für die Antwort, habe jetzt nochmals ein paar sachen geändert und es geht schon etwas mehr in die richtige Richtung. Könntest du es dir echt nocheinmal anschauen? :p

Vielleicht ist etwas mit der formatierung oder so falsch. Es ist jetzt zwar sticky, aber immer noch am oberen rand der website. Mit den YT-Tutorials geht es auch irgendiwe nicht.
HTML:

Code:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <link href='https://unpkg.com/[email protected]/css/boxicons.min.css' rel='stylesheet'>
    <script src="script.js"></script>
    <title>TBT</title>
    <link rel="icon" type="png" href="/Webdevelopement/TBT/Bilder/Neuer Ordner/logo1 TBT.png">


</head>
<body>
    <header class="header">
            <div class="logo">TBT</div>
            <input type="checkbox" id="check">
            <label for="check" class="icons">
                <i class='bx bx-menu' id="menu-icon"></i>
                <i class='bx bx-x' id="close-icon"></i>
            </label>
            <nav class="navbar">
                <a href="index.html" style="--i:0;">Startseite</a>
                <a href="veranstaltungen.html" style="--i:1;">Veranstaltungen</a>
                <a href="vergangene_events.html" style="--i:2;">Vergangene Events</a>
            </nav>
    </header>


    <section id="startseite">
        <img src="/Webdevelopement/TBT/Bilder/Neuer Ordner/logo1 TBT.png" alt="logo_tbt" class="logo_tbt_startseite">


        <section id="text">
            <div class="wir-text">
            <h2 id=das_sind_wir>Das sind wir</h2 >
                <br>
                <p>Töffliverrückt! Die Churfirsten im Rücken und los geht's:</p>
                <p>Anfangs nur zu zweit hier und da eine Ausfahrt genossen,</p>
                <p>und heute sind wir 16 töfflibegeisterte Mitglieder.</p>
                <p>Gemeinsam fahren wir mit den kultigsten 2-Takter seiner</p>
                <p>Zeit vom Toggenburg bis ins Tessin und die Westschweiz.</p>
                <p>Die Töffli sind für uns nicht nur Fortbewegungsmittel, auch</p>
                <p>Lifestyleobjekt und unsere Leidenschaft.</p>
                <p>Wir stehen auf die exklusivsten Modelle der 60iger und 70iger Jahre.</p>
                <p>Tag und Nacht schrauben wir an den Kultobjekten, suchen</p>
                <p>die seltenen Ersatzteile zusammen und bauen sie wieder neu auf.</p>
                <p>Denn Töfflifahren ist einfach geil!</p>
                <br>
                <br>
                <br>
                <br>
                <br>
                <h2>Der Verein</h2 id="der_verein">
                <br>
                <p>Um unseren 1. Event im August 2016 durchzuführen, beschlossen</p>
                <p>wir dies als Verein zu organisieren, so wurde bereits 2015 Töffli</p>
                <p>Buebe Toggenburg zum Verein. Seit dem haben wir jedes Jahr ein</p>
                <p>Töfflitreffen mit grossem Erfolg organisiert. Nebst dem wir jedes</p>
                <p>Jahr mit unseren Töfflis in die Ferien gehen, versuchen wir auch</p>
                <p>jährlich an so viele Töfflitreffen in der Schweiz wie möglich zu gehen.</p>
                <p>Unsere Leidenschaft ist das Töffli, wenn wir nicht unterwegs sind</p>
                <p>schrauben wir an den eigenen Töffli oder an jenen von Kollegen,</p>
                <p>Bekannten oder Kunden. Jeder hat sein Spezialgebiet.</p>
            </div>
          </section>
      </section>
    
            <!-- <div class="sponsoren">
                <h2>Unsere Hauptsponsoren</h2>
                <div class="logos">
                    <br>
                    <br>
                    <img src="/Webdevelopement/TBT/Bilder/Neuer Ordner/mofakult.png" alt="mofakult">
                    <img src="/Webdevelopement/TBT/Bilder/Neuer Ordner/SGKB.png" alt="SGKB">
                    <img src="/Webdevelopement/TBT/Bilder/Neuer Ordner/Zweiradcenter_toggenburg.png" alt="zweiradcenter toggenburg">
                </div>
            </div>
        </section>
    </section> -->
    


<!-- footer -->
    <div class="footer">
        <div class="footer-row">
          <div class="footer-col">
            <h4>Info</h4>
            <ul class="links">
              <li><a href="#">About Us</a></li>
              <li><a href="#">Compressions</a></li>
              <li><a href="#">Customers</a></li>
              <li><a href="#">Service</a></li>
              <li><a href="#">Collection</a></li>
            </ul>
          </div>
          <div class="footer-col">
            <h4>Explore</h4>
            <ul class="links">
              <li><a href="#">Free Designs</a></li>
              <li><a href="#">Latest Designs</a></li>
              <li><a href="#">Themes</a></li>
              <li><a href="#">Popular Designs</a></li>
              <li><a href="#">Art Skills</a></li>
              <li><a href="#">New Uploads</a></li>
            </ul>
          </div>
          <div class="footer-col">
            <h4>Legal</h4>
            <ul class="links">
              <li><a href="#">Customer Agreement</a></li>
              <li><a href="#">Privacy Policy</a></li>
              <li><a href="#">GDPR</a></li>
              <li><a href="#">Security</a></li>
              <li><a href="#">Testimonials</a></li>
              <li><a href="#">Media Kit</a></li>
            </ul>
          </div>
          <div class="footer-col">
            <h4>Newsletter</h4>
            <p>
              Subscribe to our newsletter for a weekly dose
              of news, updates, helpful tips, and
              exclusive offers.
            </p>
            <form action="#">
              <input type="text" placeholder="Your email" required>
              <button type="submit">SUBSCRIBE</button>
            </form>
            <div class="icons">
              <i class="fa-brands fa-facebook-f"></i>
              <i class="fa-brands fa-twitter"></i>
              <i class="fa-brands fa-linkedin"></i>
              <i class="fa-brands fa-github"></i>
            </div>
          </div>
        </div>
    </div>
<!-- ende footer -->
</body>
</html>


CSS
Code:
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}

body {
  min-height: 100vh;
  width: 100%;
  background: url("/Webdevelopement/TBT/Bilder/Neuer Ordner/image00021.jpeg") no-repeat;
  background-size: cover;
  background-position: center;
}

/* scrollbar */
::-webkit-scrollbar {
  width: 20px;
}

::-webkit-scrollbar-track {
  background-color: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: #d6dee1;
  border-radius: 20px;
  border: 6px solid transparent;
  background-clip: content-box;
}

::-webkit-scrollbar-thumb:hover {
  background-color: #a8bbbf;
}
/* scrollbar */

.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px 100px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 100;
}

.header::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .1);
  backdrop-filter: blur(40px);
  z-index: -1;
}

/*.header::after{
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .4));
  transition: 0.6s;
}

.header:hover:after{
  left: 100%
}   -----          animation (optinal)             -------*/

.logo {
  font-size: 32px;
  color: white;
  text-decoration: none;
  font-weight: 700;
}

.navbar a{
  position: relative;
  font-size: 18px;
  color: #fff;
  font-weight: 500;
  text-decoration: none;
  margin-left: 60px;
}

.navbar a::before{
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 0;
  height: 2px;
  background: #fff;
  transition: 0.3s;
}

.navbar a:hover::before{
  width: 100%;
}

#check {
  display: none;
}

.icons{
  position: absolute;
  right: 5%;
  font-size: 2.8rem;
  color: #ffff;
  cursor: pointer;
  display: none;
}

/*BREAKPOINTS*/
@media (max-width: 992px) {
  .header {
    padding: 1.3rem 5%;
  }
}

@media (max-width: 768px) {
  .icons{
    display: inline-flex;

  .logo_tbt_startseite{
    max-width: 90%;
  }
 
  }

  #check:checked~.icons #menu-icon{
    display: none;
  }

 #check:checked~.navbar{
    height: 17.7rem;
  }

  .icons #close-icon{
    display: none;
  }

  #check:checked~.icons #close-icon{
    display: block;
  }


  .navbar{
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 0;
    background: rgba(0, 0, 0, .1);
    backdrop-filter: blur(40px);
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .1);
    overflow: hidden;
    transition: .3s ease;
  }

  .navbar a{
    display: block;
    font-size: 1.1rem;
    margin: 1.5rem 0;
    text-align: center;
    transform: translateY(-50px);
    opacity: 0;
    transition: 0.3s ease;
  }

  #check:checked~.navbar a{
    transform: translateY(0);
    opacity: 1;
    transition-delay: calc(0.15s * var(--i));
  }
}

/* ------------             ende headder                   --------------*/

/*-------------               nav                          --------------*/

.logo_tbt_startseite {
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 60%;
  max-height: 60vh;
  opacity: 0.7;
}

/*-------------               ende nav                      --------------*/


.wir-text {
  position: absolute;
  top: calc(100% - -250px); /* Hier kannst du den Wert anpassen, um den Abstand zum unteren Rand des Kopfbereichs einzustellen */
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: black;
  z-index: 1;
  width: 80%; /* Anpassen der Breite des Textes */
  max-width: 600px; /* Maximale Breite des Textes */
  order: 1;
}


/*-------------             sponsoren                    --------------*/

/*-------------             sponsoren                    --------------*/


/*-------------              Footer                      --------------*/

.footer {
  position: sticky;
  bottom: 0;
  width: 100%;
  background-color: darkslategray;
  padding: 20px;
  text-align: center;
  min-height: 70vh;
}
.footer .footer-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 3.5rem;
  padding: 60px;
}
.footer-row .footer-col h4 {
  color: #fff;
  font-size: 1.2rem;
  font-weight: 400;
}
.footer-col .links {
  margin-top: 20px;
}
.footer-col .links li {
  list-style: none;
  margin-bottom: 10px;
}
.footer-col .links li a {
  text-decoration: none;
  color: #bfbfbf;
}
.footer-col .links li a:hover {
  color: #fff;
}
.footer-col p {
  margin: 20px 0;
  color: #bfbfbf;
  max-width: 300px;
}
.footer-col form {
  display: grid;
  gap: 5px;
}
.footer-col input {
  height: 40px;
  border-radius: 6px;
  background: none;
  width: 100%;
  outline: none;
  border: 1px solid #7489C6 ;
  caret-color: #fff;
  color: #fff;
  padding-left: 10px;
}
.footer-col input:placeholder{
  color: #ccc;
}
 .footer-col form button {
  background: #fff;
  outline: none;
  border: none;
  padding: 10px 15px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  transition: 0.2s ease;
}
.footer-col form button:hover {
  background: #cecccc;
}
.footer-col .icons {
  display: flex;
  margin-top: 30px;
  gap: 30px;
  cursor: pointer;
}
.footer-col .icons i {
  color: #afb6c7;
}
.footer-col .icons i:hover  {
  color: #fff;
}
@media (max-width: 768px) {
  .footer {
    position: relative;
    bottom: 0;
    left: 0;
    transform: none;
    width: 100%;
    border-radius: 0;
  }
  .footer .footer-row {
    padding: 20px;
    gap: 1rem;
  }
  .footer-col form {
    display: block;
  }
  .footer-col form :where(input, button) {
    width: 100%;
  }
  .footer-col form button {
    margin: 10px 0 0 0;
  }
}


/*-------------             Footer                    --------------*/
 
Anhänge
  • 1714900017506.png
    1714900017506.png
    1,1 MB · Aufrufe: 2
  • Footer ist nicht "sticky" am ende der Website Beitrag #5
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
Du verwendest jetzt position: sticky; für der Footer. Dadurch wird dieser nicht aus dem Fluss der Elemente heraus genommen. Bei einem Header hat das den positiven Effekt, dass er nichts verdeckt. In deinem Fall führt es jedoch dazu, dass sich der Footer direkt an das Element darüber, main, anschließt und weil dieses leer ist, hängt der Footer oben. Wenn Du dem main einen Inhalt gibst oder probeweise eine Höhe, sieht es wie gewünscht aus, der Footer klebt am unteren Rand.
 
  • Footer ist nicht "sticky" am ende der Website Beitrag #6
P
pingu
New member
Beiträge
3
Punkte Reaktionen
0
ahhhhh jooo
Jetzt hab ich's geschafft. Danke! :)
 
  • Footer ist nicht "sticky" am ende der Website Beitrag #7
S
Sempervivum
Well-known member
Beiträge
760
Punkte Reaktionen
125
Das ist zwar so plausibel wie ich es beschrieben habe aber normaler Weise nicht das, was man will: Der Footer soll in jedem Fall am unteren Rand kleben.
Wie so oft liefert auch hier Flexlayout die Lösung: Die Elemente im body mit Flex vertikal anordnen und dem main ein margin-bottom: auto; oder flex: 1; geben, dann funktioniert es wie gewünscht:
Code:
        /* Hier drüber wie bisher */
       body {
            display: flex;
            flex-direction: column;
        }

        main {
            margin-bottom: auto;
        }
    </style>
</head>

<body>
    <header>This ist the header</header>
    <main>This is the main content</main>
    <section class="footer">
    <!-- Hier drunter wie bisher -->
 
Zuletzt bearbeitet:
Thema:

Footer ist nicht "sticky" am ende der Website

Oben Unten