Divs richtig positionieren

  • Hallo,

    ich hatte eine Website mit folgender Struktur:

    Code
    <section id="main">
        <article>
            <h2>Überschrift hier</h2>
            <img src="" alt="" />
            <p>Text hier</p>
       </article>
    </section>

    Dazu der css Code:

    Jetzt habe ich mich entschlossen, die Website mit Hilfe von Javascript zu füllen, also Container zu erstellen, in denen der Text ausgetauscht wird.
    Die Struktur sieht jetzt so aus:

    HTML
    <section id="main">
        <article>
            <div id="headBox"></div>
            <div id="homeImage"><img src="" alt="" /></div>
            <div id="textBox"></div>
         </article>
    </section>

    Der neue css Code dazu:

    Das Design wurde mit Hilfe von viewport und media screen für mobile gerate optimiert.
    Leider rutscht der Text beim verkleinern der Breite immer mal nach unten und bleibt nicht direkt unter dem Bild, wie das in meiner ursprünglichen Version super geklappt hat. Ich habe schon versucht, den Text-Container oben zu positionieren, aber auch mit float habe ich es nicht hinbekommen.

    Hier der Link zu meiner Seite und dem vollständigen Quellcode: http://00101010.de

    Irgendeine Idee, was ich verändern kann, damit der Text oben bleibt?

    Danke
    Martin

  • Hallo

    Dein HTML und CSS enthalten leider noch jede Menge Anfängerfehler und Lösungen, die so nicht, oder nicht mehr, verwendet werden sollten.

    Ein Problem sind überflüssige height- oder min-height-Angaben. Auf height- und min-height-Angaben sollte so weit wie möglich (also fast immer) verzichtet werden.

    Der Grundsatz lautet: Die Höhe von Containern wird von deren Inhalt bestimmt.

    Die folgende CSS-Angabe löst dein Problem aus:

    Im div mit der id="homeImage" gibt es das Inline-Style height: 300px.

    Das musst du löschen.

    Gruss

    MrMurphy

  • Hallo MrMurphy,

    danke für die schnelle Antwort!

    Leider kommt dieser InlineStyle von der Javascript Datei. Wie du vielleicht gesehen hast, sind es ja eigentlich drei img-divs in der HTML-Datei untereinander.
    Das heisst, dass ich beim Wechseln der Inhalte immer zwei Bilder auf height='0px' setze und das dritte auf seine Originalhöhe. Ich weiß nicht, wie ich das sonst lösen soll ..

  • Hallo

    Zitat

    Ich weiß nicht, wie ich das sonst lösen soll ..

    Es ist leider nicht klar, was du überhaupt erreichen willst. Wonach richtet es sich zum Beispiel wann welches Bild angezeigt werden soll?

    Wenn von mehreren möglichen Inhalten nur bestimmte angezeigt werden sollen ist eher PHP sinnvoll. Damit werden die Inhalte auf dem Server zusammengefügt und den Besuchern keine unnötigen aufgedrängt, welche zum Beispiel unnötigen Traffic verursachen.

    Und wie sollen wir dir helfen wenn du selbst einfachste Lösungen nicht umsetzen kannst oder willst?

    Für Webseiten setzt du viel zu intensiv auf JavaScript.

    Ein Grundsatz ist, das Webseiten auch ohne JavaScript funktionieren sollten. Es ist in der Regel auch kein Problem dies umzusetzen.

    JavaScript ist zum Beispiel bei Webshops unverzichtbar und damit sinnvoll.

    Gruss

    MrMurphy

    Einmal editiert, zuletzt von MrMurphy (1. Mai 2017 um 11:34)

  • Hallo,

    sorry, wenn es dir so vorkommt, als würde ich deine Anregungen nicht umsetzten wollen ..

    Ich bin ziemlich lange aus dem Webdesign raus und brauchte schnell eine Website für den Apple Store. Ich habe bei meinem Provider leider kein PHP sonst hätte ich es auf jeden Fall mit PHP gelöst.

    Im Quelltext der main.js sieht man doch genau wie das Ganze funktioniert. Je nach angeklicktem Link werden der Text ausgetauscht und die Höhe der nicht benötigten Bilder auf 0px gesetzt.

    Martin

  • Hallo

    Zitat

    sorry, wenn es dir so vorkommt, als würde ich deine Anregungen nicht umsetzten wollen ..

    Ich mache nur Vorschläge, ob du die benutzen willst ist ganz alleine deine Entscheidung.

    Es geht mir darum dass ich das Gefühl habe, die nicht helfen zu können, weil ich dein Problem nicht richtig erkennen kann. Das

    Zitat

    Je nach angeklicktem Link werden der Text ausgetauscht ...

    habe ich zum Beispiel nicht erkannt. Normalerweise werden über die Links einer Hauptnavigation andere Seiten aufgerufen oder, bei One-Page-Webseiten, zu den entsprechenden Einträge heruntergerollt.

    Dein Vorgehen ist ungewöhnlich und hat Nachteile, die beim Erstellen von Webseiten vermieden werden sollten.

    Mal abgesehen davon, dass versteckte Inhalte grundsätzlich vermieden werden sollten, da sie für viele Besucher Barrieren darstellen, bietet sich für deine Vorstellungen eher der sogenannte Checkbox-Hack an.

    Der Vorteil ist, dass die Checkbox-Hack-Lösung auch bei nicht vorhandenem oder blockiertem JavaScript funktioniert.

    Gruss

    MrMurphy

  • OK, danke. Dann werde ich mir das Thema Checkbox-Hack mal ansehen.

    Mein 'ungewöhnliches' Vorgehen habe ich auf einem Javascript-Kurs gelernt. Na ja, hat anscheinend halt jeder seine eigene spezielle Art zu coden :)

  • Hallo

    Zitat

    Na ja, hat anscheinend halt jeder seine eigene spezielle Art zu coden

    Klar kann jeder seinen Quelltext erstellen wie er will.

    Wer bestimmte Ergebnisse erreichen oder benutzerfreundliche Seiten erstellen will sollte sich aber an die Regeln von HTML und CSS sowie bewährte Vorgehensweisen halten.

    In Schulungen wird JavaScript zum Lernen für Aufgaben eingesetzt, für die es nicht gedacht ist. Leider wird häufig nicht darauf hingewiesen, dass für die Praxis dann doch andere Lösungen sinnvoller sind.

    Ich habe mal ein Beispiel für einen Checkbox-Hack erstellt:

    Beispielseite

    Die Beispielseite funktioniert in jedem gängigen Browser, da sie nur auf HTML und CSS basiert.

    Mit JavaScript könnte zum Beispiel jetzt noch sinnvollerweise die Zugänglichkeit der Seite verbessert werden.

    Und noch mal der Hinweis: Grundsätzlich sollten keine Inhalte versteckt werden. Die Beispielseite würde ich als Onepageseite erstellen, deren Inhalt immer komplett angezeigt wird, so dass die Besucher zum Finden aller Informationen nur noch raufscrollen oder runterscrollen müssen.

    Das könnte dann so aussehen:

    Beispielseite ohne versteckten Text

    Gruss

    MrMurphy

    3 Mal editiert, zuletzt von MrMurphy (2. Mai 2017 um 09:23)

  • Cool, danke! Wieder was dazugelernt ;)

    - - - Aktualisiert - - -

    Aber bitte lass die Beispiele noch ein paar Tage online, da ich gerade nur das Ergebnis sehen kann und nicht den Quelltext