[gelöst] Bild responive machen

  • Es steht oben und unter über.

    Das liegt daran, das man dem Bild eine "Basis" geben muss, auf dessen Grundlage es angepasst wird.

    Im bisherigen Code haben wir dafür "min-width: 200px" verwendet.


    Jetzt hast du in deinem CSS "max-heigt: 55%", das geht auch.

    Allerding ist diese Angabe in der Media-Query mit der Bedingung "max-width: 750px" verknüpft.


    Dein S9+ hat horizontal ausgerichtet sicherlich genau wie das S10+ 760px, daher greifen die Angaben im Media-Query hier nicht mehr.

    Du kannst jetzt entweder einen angepassteren Wert, der auf beiden Ansichten greift, als "Basis" setzen, oder du kannst auch eine Media-Query speziell für die horizontale Ansicht nutzen...


    Btw. schmeiß das "display: flex" aus deinem img-Block, das hat da nichts zu suchen.

    Flex & Grid sind sinnlos bei einem einzigen Element ohne Kindelemente.


    Und noch eine kleine Ergänzung:

    Da du jetzt offensichtlich den Text unter dem Bild haben willst ist es Blödsinn, die <section> weiterhin als "position: absolut" zu belassen und dann mit padding zu arbeiten!

    Schmeiß position & padding raus, gib dem <header> "flex-direction: column" und der <section> "order: 1".

    Und auch deine <section> braucht kein "display: flex", da h1 & p standardmäßig "display: block" haben und somit automatisch untereinander gesetzt werden. Da ist "display: flex & flex-direction: column" völlig sinnlos.


    Und nimm doch endlich die "margin-right: 30rem" weg... :D


    Oh, ich Depp habe grad erst dein Bild gesehen, in dem auch die Abmessungen (658px) zu sehen sind...

    Aber egal, ändert nichts an der Begründung.

  • Ich war ein paar Stunden weg und die Diskussion ist weiter gegangen, aber will nicht versäumen, die Frage von AndreasB in #35zu beantworten:

    Zitat von AndreasB

    Kannst du erklären, wieso dieser Weg "verfehlt" ist?

    Gern. Wie der Name schon sagt, ist Grid dafür entwickelt worden, ein Gitter zu produzieren. Dieses erstreckt sich in zwei Dimensionen, horizontal und vertikal. Haben wir nur zwei Container neben einander, fehlt die zweite Dimension und die Anwendung eines Grid macht keinen Sinn. Hier ist dann Flex besser geeignet, weil sich dieses auf eine eindimensionale Anordnung beschränkt. Und mit flex:1 für beide Flexitems kann man problemlos die selbe Breite einstellen. Damit habe ich noch nie irgend welche Probleme gehabt.


    Übrigens, ich vergaß zu erwähnen: Bei einem Posting wie #30 mit dem umfangreichen HTML und CSS ohne Erklärungen oder Kommentare frage ich mich ebenfalls, wo die Mitglieder sind, die sonst leidenschaftlich das Posten von fertigem Code beanstanden.

  • das ist auch interessant.


    Aber dass sich das bild im Querformat nicht anpasst, bezieht sich auf dein Code aus dem Post #31, den ich mir heruntergeladen habe um mit rum zu testen.

    dh. an meinem bisherigen code habe ich noch nichts geändert.

    Zitat

    Und nimm doch endlich die "margin-right: 30rem" weg... :D

    deshalb habe ich mit deinem Code rumgespielt. da wird es ja nicht gebraucht. Aber ich habe nur lokal mit getestet.

    Ich lade das heute abend hoch.

  • Können wir das Thema mit diesem fertigen-Code-Bullshit jetzt mal wieder runterschrauben?


    Wenn jemand eine Frage stellt und man dann mit einem vollständigen Code antwortet, finde ich es ja noch nachvollziehbar darüber zu meckern.


    Wenn jemand aber eine Frage stellt, Code liefert und man dann seinen Code umschreibt und ihm somit mitteilt, was man persönlich besser machen würde, dann ist das Gemecker finde ich übertrieben.


    Das meine ich aber natürlich nur bei Leuten, die wie Emess offensichtlich schauen & experimentieren, nicht bei Leuten die ohne eigenes Zutun eine Fertiglösung erhoffen.

  • Das meine ich aber natürlich nur bei Leuten, die wie Emess offensichtlich schauen & experimentieren, nicht bei Leuten die ohne eigenes Zutun eine Fertiglösung erhoffen.

    Da bin ich ja beruhigt.

    Ich habe aber immer noch ein Problem. Du hast ja den <header> in <main> gesetzt. Bei mir ist die Hierachie

    CSS
    <body>
        <nav></nav>
            <header>
                <section>
                    <img>
                </section>
            </header>
    </body>

    das zerschießt mir allerdings meine Navigation in der Smartphone Ansicht .

    Jetzt müsste man doch noch die Navigation auch komplett vom <body> trennen . Oder und nur wie?

  • Das nav-Element ist nur für Navigationsblöcke gedacht einschließlich (falls sinnvoll) passenden Überschriften und / oder verlinkten Bildern.


    Das header-Element hat genau wie nicht zur Navigation gehörende Bilder nichts im nav-Element verloren.


    Umgekehrt darf das header-Element ein nav-Element enthalten.


    In der Regel werden header- und nav-Elemente getrennt, da die Seite so flexibler an unterschiedliche Bildschirme und andere Ausgabegeräte angepasst werden kann. Wobei es keine Rolle spielt, ob zu erst das header-Element oder das nav-Element im Quelltext steht.

  • Habe meine Hierachie falsch abgetippt. Sorry!

    jetzt ist sie korregiert. Schau es dir nochmal an. nicht, dass es zu Unstimmigkeiten führt

  • Das mit der Navigation konnte ich mit z-Index lösen. Aber das bild will einfach nicht so wie ich will

    Bild bekomme ich nicht mittig und im Querformat nicht wirklich responsive.


    https://my2.emess62.de/

    Bei deiner aktuellen Seite liegt es daran, das dein <header> 100vh hat, also auch die Fläche der <nav>, die ja absolut positioniert ist, mit einbezieht.

    Machst du die Höhe wieder auf "height: calc(100vh - 80px)" mit entsprechendem Abstand von der <nav> und gibst dem Bild noch ein "max-height: 100%" oder so, dann klappt das...


    Irgendwie ist dein Code jetzt aber (vermutlich durchs Experimentieren) ordentlich durcheinander.

    Dein <main>, der den eigentlichen Seiteninhalt beinhalten sollte, umschließt jetzt nur deinen <header>. Der eigentliche Content geht erst nach </main> los...


    Ich glaube, du solltest lieber kurz mal durch deinen Code und deine Seite gehen und mal genauer definieren, was du eigentlich genau möchtest.

  • Habe mal die Seite komplett dargestellt wie sie werden soll Farben und Gedöns kann sich natürlich ändern.

    Content1 bis Content3 gibt überwiegend Galerien mit etwas Text.


    Mir ist es jedoch nach wie vor nicht gelungen das Bild in allen Ansichten responsiv zu gestalten und mit dem Ausrichten klappt bei mir auch nicht.

    Etwas muss ich übersehen oder falsch verstehen

  • Na "position: absolute" beim Bild ist Quatsch und bringt dich entsprechend noch mehr aus der Struktur...


    Ich habe deinen Code jetzt mal folgendermaßen angepasst:

    • Viele CSS-Einstellungen zusammengefasst. Z.B. ist es Blödsinn, immer die gleiche Schriftart bei allen Elementen zu setzen, das gehört global!
      Genauso deine ganzen ContentX-Abschnitte kann man wunderbar zusammenfassen.
    • Die <nav> ist jetzt "position: relative". Es ist besser nur die <ul> in der Smartphone-Ansicht darauf zu setzen.
    • Ein einzelner Wert bei "margin" oder "padding" wirkt auf alle Seiten, das brauchst du absolut nicht und verzerrt deine <nav> unten teilweise wegen "padding: 30px" und "border: 4px...".


    Um jetzt mal auf gleicher Basis zusammen weiter zu machen, hier die angepasste CSS:


    Wo genau soll der <header>-Text hin? Unterhalb, oberhalb, oder auf dem Bild?

  • Das ist ja super. Ich klick mich nachher mal durch um es auch wirklich zu verstehen.

    Wo genau soll der <header>-Text hin? Unterhalb, oberhalb, oder auf dem Bild?

    der Text soll eigentlich unter das bild. Aber ich will ihn hischieben können wo ich will. Weilsich der Tex bestimmt noch ändert und ne andere Schrift erhält.

    Da wird man schon mit margin bzw padding arbeiten müssen (Denke ich mir so) :/

  • "order" sortiert wohl die Reihenfolge der items. In meinem Fall kann ich mit "0" bzw "1" die Headline über bzw unter dem bild anordnen.

    Wieso? Hat sich mir noch nicht erschlossen.

    Aber das eigentlich problem ist : Der Content von Section #about soll oben und mittig sein.

    Jetzt ist ee vertikal zentriert und oben und unterhalb des Contentes schau Blau der body hervor und bringt mich zum verzweifeln.


    https://my2.emess62.de/

  • Mit dem "justify-content" und "align-items" des umgebenden section-Elements zentrierst du das div#about horizontal und vertikal..


    Das div#about nimmt durch seinen Inhalt die gesamte Breite des umgebenden section-Elements ein, wird aber nur so hoch wie sein Inhalt. Das ist das ganz normale Verhalten.


    Du musst also dem div#about entweder mehr Inhalt oder eine vorgegebene Höhe mit auf seinen Weg geben.

Jetzt mitmachen!

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