div- im div-Element zentrieren

  • Hallo liebes Forum,

    Ich habe folgendes Problem das ich leider nicht lösen kann. Ich würde gerne die zwei Inline-Blocks(Name und Email) in einem übergeordneten Div zentrieren. Ein Foto zur Problemstellung habe ich unten angefügt. Ich habe versucht die 2 Blöcke mit margin-right: 50%; und margin-left: 50; zu zentrieren aber jedoch ohne Erfolg. text-align: center; funktioniert auch nicht, sowie left: 50%;
    Bin schon echt verzweifelt das ich an so etwas vermutlich leichtem scheitere. Die borders habe ich nur zur meinem Verstädnis angehängt um das Problem zu lösen.




    danke,
    Gregor

  • Hallo

    Du hast wahrscheinlich unbewußt mehrere Probleme in die Webseite eingebaut.

    Wenn du .wrapper eine Hintergrundfarbe geben würdest, zum Beispiel ein knalliges Orange, würdest du feststellen, dass der Container überhaupt keine Höhe hat.

    Das kommt durch das float von .side-content, welches den Container .side-content aus dem Dokumentenfluß nimmt. Damit ist es kein Inhalt von .wrapper mehr und kann weder die Höhe von .wrapper beeinflussen noch innerhalb von .wrapper zentriert werden. float solltest du erst verwenden wenn du es verstanden hast und mittels clear oder clearfix auch wieder "einfangen" (beenden) kannst.

    Die prozentuale Höhenangabe von .wrapper ( height: 80%; ) hat zudem keine Auswirkung. .wrapper kann mit Prozentangaben nur so hoch werden wie sein umgebender Container (body) und dessen umgebender Container (html). Du musst also zunächst dafür sorgen, dass die überhaupt eine Höhe mit Platz zum Zentrieren haben. Und dabei darauf achten, dass alle gängigen Browser das auch verstehen.

    Weiterhin hast du den Doctype vergessen. Der sollte heutzutage HTML5 aufrufen. Dann könntest du auch aussagekräftigere Containerelemente wie main, article, section und so weiter verwenden.

    Wenn das alles korrigiert ist geschieht das Zentrieren ganz einfach mittels Flexbox.

    Wenn es nur ums seitliche zentrieren geht kannst du auch float streichen und .side-content ein linkes und rechtes margin mit dem Wert "auto" geben.

    Nachtrag:

    Der Beginn der Datei mit dem Doctype könnte zum Beispiel folgendermaßen aussehen:

    HTML
    <!DOCTYPE html>
    <html lang="de">
    <head>

    und das CSS folgendermaßen. Ich habe zu löschende Angaben erst mal nur auskommentiert und den Rahmen zur Kenntlichmachung eine größere Breite und knallige Farben verpasst. Um das Zentrieren in der Höhe habe ich mich erst mal nicht gekümmert da ich nicht weiß, ob du das überhaupt willst und ich deine height-Angabe falsch interpretiert habe:

    Am Quellcode habe ich auch nichts geändert um dich nicht zu sehr zu verwirren, den kannst du also beibehalten.

    Gruss

    MrMurphy

    5 Mal editiert, zuletzt von MrMurphy (13. November 2016 um 17:16)

  • Uff wie ich sehe habe ich das von Grund an falsch gemacht und verstanden.
    Meine Idee war das ich einen .wrapper erstelle denn in die Mitte setze. Der soll 80% der ganzen Fläche füllen und mittig stehen. Diesen .wrapper wollte ich in 2 hälften teilen. Eine Hälfte soll ein Bild füllen und die 2 Hälfte ist für ein Content gedacht. Und in dieser rechten Content hälfte sollte ein Contact-Formular wieder mittig gesetzt werden.

    Jetzt ist meine Frage in Bezug auf deine Antwort. Wie erkenne ich einen Dokumentenfluß ?
    Den .wrapper habe ich nur eine höhe gesetzt um zu sehen wie es sich verhält.
    sonst würde ich das so programmieren:

    HTML
    .wrapper {     border: 1px solid #665544;     overflow: auto;     width: 80%;     margin: 80px auto;


  • Hallo

    Deine Überlegungen zur Gestaltung erscheinen mir nicht ausgereift.

    Hast du dabei nur deinen Browser vor Augen und in deinen Gedanken?

    Was ist mit Besuchern, die ihren Browser in anderer Größe benutzen? Zum Beispiel nur eine Bildschirmhälfte ausfüllen und in der anderen ein anderes Programm laufen lassen? Oder Smartphones / Tablets / Notebooks verwenden? Die dann auch im Wechsel von Hoch- und Querformat?

    Wie soll sich die Seite dann verhalten?

    Gruss

    MrMurphy

  • Nun wollte zuerst eben nicht responsiv die Seite aufstellen und dann die selbe mit bootstrap-grid. Die Seite soll nicht ausgereift sein, soll nur ledeglich zum üben da sein.

  • Hallo

    Zitat

    soll nur ledeglich zum üben da sein

    Ich habe mal eine Seite mit dem Grundlayout wie von dir beschrieben erstellt. Mit Inhalt kannt du es dann ja selbst füllen.

    Gruss

    MrMurphy