div - layout problem

  • Hmm ich hoffe mal das ich hier im richtigen Unterforum bin mit meinem Problem.


    Und zwar hab ich mir mit <div> und css3 ein Layout zusammen gebastelt, was ja für meinen Geschmack und Wissen recht nett anzusehen ist.


    Nun zu meinem Problem:


    Also der Aufbau wäre kurz geschrieben so



    Das Problem ist nun das ich den Link Bereich nicht in der größe beeinflussen kann. Beim Header div-container hab ich eine höhe angeben können zb. hat wunderbar geklappt.
    Wenn ich aber beim Link div-container die höhe angeben will rutscht mir das ganze um die Ohren und der Footer bereich klebt dann sehr weit oben.


    Mein Plan wäre das ich den Link bereich so ca. 20 - 30 px hoch haben will, eventuell grafische 4eckige Buttons für die Links.
    Wo habe ich denn hier meinen Fehler eingebaut ? (Hier kann man sich das ganze Übel Live angucken ;) )


    Hoffe mal ich habe hier nichts grundlegendes falsch gemacht
    lg
    dualskull


    Hier mal meine Index.php



    und hier mal die CSS-Datei

  • Hmm, da sehe ich noch einige Verbesserungsmöglichkeiten:
    1) Dein HTML: du nutzt zwar laut Doctype schon HTML5, was gut ist, aber den größten Vorteil, den es mit sich bringt ignorierst du ;) Und das sind die neuen logischen Auszeichnungen, <header> <nav> <section> <article> <footer> ...
    Dann musst du weniger divs verwenden und dein Code wird etwas logischer. Sonst müsste man immer erst ein div suchen und dann die ID prüfen.


    2) Dein CSS: "Absolute" Angaben sind immer schlecht. ZB dein maincontainer width: 1200px;
    Du solltest immer davon ausgehen, dass Leute daherkommen, die heute noch einen 800x600px Bildschirm nutzen ;) Es gibt inzwischen die tolle neue CSS3 Einheit vw und vh (ViewportWidth und -Height), die jeweils für 1/100tel der aktuellen Anzeigefläche stehen. Das heißt, das skaliert mit der Größe der Anzeigefläche (zB wenn du dein Browserfenster verkleinerst) hat aber alles immer noch das gleiche Verhältnis untereinander. Quasi Prozent, aber leichter mit umzugehen, da alles die gleiche Referenz hat.
    Dazu kommt, dass du auch beim CSS darauf achten solltest, den Code "dry" zu halten, also Wiederholungen zu vermeiden. Ich sehe bei dir mehr als 5 Mal die gleiche Auszeichung für border-right und border-left. Nimm die raus und packe sie in einen eigenen Block für alle Elemente, denen du das zuweisen willst:


    Zu deinem eigentlichen Problem: Die Browser haben immer verschiedene Standardabstände für die einzelnen Elemente. Setze an den Anfang deines CSS Codes folgendes

    CSS
    * {
        margin: 0;
        padding: 0;
    }

    Das elimiert schon einmal diese Unterschiede und du musst darauf keine Rücksicht nehmen. Als Nächstes würde ich wirklich empfehlen, die absoluten Pixelangaben so weit wie möglich zu entfernen und dafür zB vw oder vh zu verwenden.
    Als drittes, probier erst einmal, die Breite von Nav, Section und footer auf irgendwas größer als 50% des Vierports zu setzen (also zB Maincontainer auf 80% und die nav, ... auf 100%. Oder direkt nav, ... auf 80vw) und ändere dann die Höhe. Eigentlich sollte da dann auf keinen Fall was springen.
    Wobei ich mich sowieso wundere, da ungewolltes Überlappen eigentlich fast immer durch ein unglückliches float oder einen falschen z-index indiziert wird. Beides taucht in deinem Code allerdings nicht auf.

  • Hallöchen


    Erst mal auch an dich vielen dank für deine nette Hilfe hier ... ist das erste Forum wo einem nett geholfen wird finde ich echt super.


    1) Na dann bin ich schon mal auf den richtigen Weg mit HTML5. Das mit der Auflösung das es verschiedene gibt war mir bewusst, da es sich ja um ein Lern Seite für mich handelt habe ich darauf nicht so geachtet wenn es sinnvoller ist werde ich das auch gleich ändern.


    Die Tags <header><nav><article><footer> das ich das nicht verwendet habe muss ich passen keine Ahnung wieso ich das nicht verwendet habe. Ich denke mal ich war so glücklich das ich so halbwegs ein nettes Layout geschafft habe das ich drauf vergessen habe. Hab mir zur Hilfe das hier als Vorlage genommen könnte auch damit zusammen hängen das ich die Tags dann vergessen habe.
    Das <section> Tag hab ich in die anderen HMTL - Seiten eingebaut die ja per PHP in den div inhalt geladen werden war das auch ein Fehler ?



    2) Das mein CSS komisch ist hab ich schon mitbekommen hehe :whistling: .
    Das mit border-right und left usw. war für mich als Hilfe nur so wusste ich am Anfang gleich wo ich was ändern musste
    Soll ich dann die id's an die header, nav usw hängen ?



    3) Ich werde mal das ganze überarbeiten und hoffe wenn weitere Fragen / Probleme auftauchen hier weiter fragen.
    (so hoffe das ich das heute noch machen kann ...) die Tags <vw> und <vh> muss ich mir noch angucken kannte ich leider garnicht ....


    lg dualskull

  • Habe mir jetzt nicht alles durchgelesen, aber mir kurz deine Seite angeguckt. Was hälst du davon den "navigation"-div auch wieder zuschließen??


    Den auf deiner Seite öfnnest du die navi, dann kommen diene Link, und dann schon dein inhalt. Und erst danach schließt du alles wieder?!!? O.o


    Kanu

Jetzt mitmachen!

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