html-Sticky-Footer will nicht so recht

  • Ich bin gerade dabei, eine Seite zu bauen, die im Aufbau ähnlich der Seite https://developers.google.com/…atterns/tiny-tweaks?hl=en ist.


    Dabei habe ich jetzt mal folgenden Code geschrieben:




    und



    Jetzt soll der Footer wie im Sticky footer-tutorial http://www.html-seminar.de//re…bdesign-sticky-footer.htm unten kleben. Das will aber nicht so, wie ich das will. Also mit 100% höhe geht es nicht, aber mit 1000px höhe wird der Bereich 1000px hoch. warum? Was muss ich ändern, damit ein sticky footer auch in der Div funktioniert?

  • Hallo,


    bei deinem Quelltext scheint ein Teil zu fehlen. So wird ein nav-Element geöffnet, aber nicht wieder geschlossen und hat auch keinen Inhalt.


    Es wäre schön wenn du dir beim Einstellen des Quelltextes etwas mehr Mühe geben würdest. Mit solchen Fehlern sinkt die Hilfsbereitschaft im allgemeinen ungemein.


    Zitat

    Also mit 100% höhe geht es nicht, aber mit 1000px höhe wird der Bereich 1000px hoch. warum?


    % und fixe Einheiten werden unterschiedlich vom Browser interpretiert.


    1000px sind 1000px.


    Bei % muss man aber immer bedenken, wovon die % genommen werden sollen. Bei height von der Höhe des umgebenden Elements. Wenn das nicht die gesamte Bildschirmhöhe ausfüllt kann das innenliegende mit der 100%-height-Angabe das auch nicht. Du musst also dafür sorgen, dass alle umgebenden Elemente (Eltern- , Großelternelemente u.s.w.) bereits über die gewünschte Höhe verfügen.


    Insgesamt kann in deinem Beispiel die Sticky Footer-Methode mit display:table nicht funktionieren. #bigcontentarea zerstört die Tabellenkonstruktion.


    Gruss


    MrMurphy

  • I'm sorry, das war ein Kopierfehler. Mein Editor (bluefish) kann Elemente einklappen, zeigt das aber nicht immer zu 100% korrekt an. heißt: Der HTML-Code ist bis auf die vielfache Verwendung der ids im Footer und die (noch) leeren ID-Definitionen in den Elementen durchaus valide.


    Hier noch mal vollständig kopiert:






    So sieht die Seite dann im Browser aus (habe im CSS noch den Bereich #bigcontentarea grün gefärbt, um zu demonstrieren, dass der tatsächlich die volle höhe einnimmt)
    Die Navigation hat auch noch ein bisschen Design bekommen.


    Hier noch mal der CSS-Code:





    Bei % muss man aber immer bedenken, wovon die % genommen werden sollen. Bei height von der Höhe des umgebenden Elements. Wenn das nicht die gesamte Bildschirmhöhe ausfüllt kann das innenliegende mit der 100%-height-Angabe das auch nicht. Du musst also dafür sorgen, dass alle umgebenden Elemente (Eltern- , Großelternelemente u.s.w.) bereits über die gewünschte Höhe verfügen.


    Insgesamt kann in deinem Beispiel die Sticky Footer-Methode mit display:table nicht funktionieren. #bigcontentarea zerstört die Tabellenkonstruktion.


    Weshalb? Ich müsste doch theoretisch in jeder! Div einen Sticky footer nach dem oben verlinkten Tutorial machen können? Und bigcontentarea IST groß genug. Auch wenn ich #bigcontentarea sage, dass es auch eine tabellenreihe sein soll, ändert das nichts.


    und wie könnte ich das sonst lösen? beim klassischen würde ich mir ja das mobile Design zerstören, sonst gäbe es ja kein Tutorial für ein extra mobiles design.

  • Hallo


    Zitat

    Ich müsste doch theoretisch in jeder! Div einen Sticky footer nach dem oben verlinkten Tutorial machen können?


    Richtig. Erst mal musst du dich aber an die Regeln von HTML und CSS halten.


    Wenn du im CSS display:table vorschreibst, muss sich das HTML auch an den Aufbau einer Tabelle halten. Mit allen Vor-, aber auch Nachteilen. Und das ganze Konstrukt verhält sich dann auch wie eine Tabelle.


    So dürfen sich zwischen table, table-row und table-cell keine weiteren Elemente befinden.


    Auf deiner Webseite folgt jedoch auf body (= table) zunächst #bigcontentarea und dann erst mit nav (= table-row) die erste Tabellenzeile. Anstatt body müsste also #bigcontentarea die Eigenschaft display:table bekommen.


    Gruss


    MrMurphy

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!