[gelöst] Bild responive machen

  • Habe ich eine falsche vorstellung von @mediaquerry?

    Entferne ich das margin-right aus der "body>header>section" passt erst mal die smartphoneansicht aber in der Desktopansicht steht die headline direkt neben dem Bild

    Ne du sollst es ja nicht aus body>header>section entfernen, sondern es einfach IN deinem Media-Query-Block überschreiben, damit die 30rem margin nicht für die Smartphone-Ansicht gelten.

  • Also "margin-right: auto;" in der @mediaquery

    Man das war eine schwere Geburt. Ich hatte einfach deine Hinweise nicht richtig verstanden. Stand total auf dem Schlauch


    Zitat

    Ne du sollst es ja nicht aus body>header>section entfernen, sondern es einfach IN deinem Media-Query-Block überschreiben, damit die 30rem margin nicht für die Smartphone-Ansicht gelten.

    Das hat mir die Augen geöffnet

    Vielen Dank für deine Geduld

    :thumbup:


    PS. Gibt es eine Alternative zu margin-right? Denn die @mediaquery greift ja erst bei Auflösung 750px.

    D.h. zwischen 750px- ca.1358px wird die section nicht angezeigt. Weil margin-right aus dem Bild schiebt.

    Ich würde denken man muss für jede gängige Auflösung eine @mediaquery anlegen. Aber wer denkt schon so wie ich?

  • Zitat

    Gibt es eine Alternative zu margin-right?


    1. Korrektes HTML


    2. Passendes CSS


    Du bist beim CSS leider einseitig auf Flexbox fixiert. CSS ist aber ein Gesamtpaket und Flexbox ist für viele Lösungen halt nur schlecht oder gar nicht geeignet.


    Eine Grundregel beim HTML und CSS ist zum Beispiel, den Quelltext minimal zu halten. Also nur HTML-Elemente und CSS-Anweisungen zu verwenden, die notwendig sind.

  • Da stimm ich dir zu. Denn korrektes HTML und passendes CSS ist ja genau was ich will.

    Doch weiter hilft das erst mal nicht

  • Schau dir


    Code
    display: grid;


    mal genauer an.

    Das sehe ich anders.


    Ich selbst nutze für ein aktuelles Projekt zum Großteil grid mit flex im Detail, aber hier bei dem simplen Onepager mit keinen wirklichen Elementen & Struktur zum Layouten ist es für mich mit flex gut bedient.


    Deine letzten beiden Antworten wirken auf mich wie von Leuten die grid genutzt haben, jetzt bei absolut jeder Seite darauf schwören und im Endeffekt genau das machen, was du weiter oben mit "... leider einseitig auf ... fixiert" kritisierst.

    Kann sein, das ich es einfach nur falsch "rausgelesen" habe und du nicht zu dieser Gruppe gehörst, dann nichts für ungut.


    Ich würde anhand seiner aktuellen Seite aber bei flex bleiben.

  • Zitat

    Kann sein, das ich es einfach nur falsch "rausgelesen" habe und du nicht zu dieser Gruppe gehörst, dann nichts für ungut.


    Du könntest zum Beispiel mal ältere Beiträge von mir lesen. Dann wirst du feststellen, dass ich immer das passende CSS für das jeweilige Problem empfehle und nichts gegen Flexbox habe, wenn es angebracht ist, zum Beispiel



    Ob Flexbox (display: flex;) oder CSS-Grid (display: grid;) zur Lösung des jeweiligen Problems besser geeignet ist hängt nicht davon ab, aus wie vielen Seiten die Website besteht.

  • Du könntest zum Beispiel mal ältere Beiträge von mir lesen. Dann wirst du feststellen, dass ich immer das passende CSS für das jeweilige Problem empfehle und nichts gegen Flexbox habe, wenn es angebracht ist...

    Ja gut, ich hatte jetzt nicht vor dich zu analysieren.

    Ich hatte nur erwähnt, wie es auf mich wirkte und lag falsch, alles gut.


    Ob Flexbox (display: flex;) oder CSS-Grid (display: grid;) zur Lösung des jeweiligen Problems besser geeignet ist hängt nicht davon ab, aus wie vielen Seiten die Website besteht.

    Habe ich ja auch nicht gesagt.

    Mit "bei dem simplen OnePager" bezog ich mich auf den sehr bescheidenen Inhalt der Seite, nicht auf die Seitenzahl!

    Das dürfte der rest des Satzes aber auch so hergeben...

  • Wir müssen ja nicht diskutieren was besser ist. Im Augenblick bin ich ja am Anfang mit Flexbox.

    wenn ich später zu Bildergalerien komme, wird bestimmt Grid hinzu kommen..

    Jetzt würde mich mehr interessieren ob ich beim bisherigen Projekt margin oder position mit modernen Alternativen ersetzen kann?

  • Zitat

    Jetzt würde mich mehr interessieren ob ich beim bisherigen Projekt margin oder position mit modernen Alternativen ersetzen kann?

    Ja, mit CSS-Grid (display: grid;) in Verbindung mit Flexbox (display: flex;).


    Zu dem HTML



    reicht dann grundsätzlich folgendes CSS



    Dazu dann noch etwas Standard-CSS für die Schrift und um Grafiken responsive zu bekommen.


    Der gesamte Quelltext (für die Ausrichtung des Textes neben der Grafik) könnte dann folgendermaßen aussehen. Die Angaben Basisangaben, Schriften und Grafiken sind aus Erfahrung für mich für die gesamte Website sinnvoll:


  • Ja, mit CSS-Grid (display: grid;) in Verbindung mit Flexbox (display: flex;).

    Grid braucht es hier nicht.

    Das was du mit Grid in deinem Beispiel machst (beiden Elementen im header die Hälfte der Fläche geben) ist absolut keine Begründung, um Grid ANSTATT Flex zu verwenden!

    Das ist mit Flex sehr gut selbst zu lösen.


    Zu deinem Code mal etwas meine Meinung:

    • <main> ist in den meisten Fällen nur einmal auf der Seite anzutreffen und bedarf keiner Klasse oder ID um im CSS eindeutig angesprochen zu werden.
    • <figure> kann man machen, würde ich hier aber weglassen, weil das Bild nicht mitten im eigentlichen Inhaltsfluss steckt sondern im <header> und auch keine ergänzenden Elemente wie eine Bildunterschrift besitzt, die ein <figure> üblicherweise als einzelnes Element mit "unabhängiger" Bedeutung zusammenfasst.
    • Ich bevorzuge im CSS zum Ansprechen von Kindelementen immer das größer-als-Zeichen ">" um wirklich auch nur die Elemente anzusprechen, die ich will. Beispiel:
      .content header // Spricht auch alle anderen <header> unterhalb von .content an.
      .content>header // Spricht nur den gewollten <header> an.
    • in "min-width: 1px" sehe ich absolut keinen Sinn.
    • deine margins mit 4 Angaben gehen auch kompakter mit 2 Angaben.
    • dein "margin: 0 auto 0 auto" wäre nicht nötig, hättest du es das Bild nicht in ein <figure> verpackt. "margin ... auto" ist aber auch nicht mehr zeitgemäß...
    • 4 Mal "@media all"? Warum nicht in einen Block?


    Ich würde dein Beispiel so umsetzen:

    Emess hatte den Text ja zuletzt auf dem Bild, daher hab ichs so gemacht...

  • Code
          .content header {
             display: grid;
             grid-template-columns: 1fr 1fr;
          }

    So etwas kann man nun wirklich nicht mehr ernst nehmen. Ein Grid, um simpel zwei Container neben einander anzuordnen. Semantik Adé!

  • Für mich ist das interessant die Wege nach Rom zu vergleichen.

    In meinem Fall sehe ich den von nextuser als besser geeignet, Besonders den aktuellen schau ich mir nochmal genau an.

    Für eine Galerie wär wohl der weg von MrMurphy geeignet. Aber das sehe ich hoffentlich, wenn es soweit ist.


    Vielen Dank an alle.

    Das ist ein angenehmes und lebendiges Forum.

  • Mit der Bildergalerie hast Du ja schon einen richtigen Anwendungsfall für ein Grid erkannt. Da müsste eigentlich offensichtlich sein, dass die Anwendung, die ich in #32 zitiert habe, verfehlt ist.

    Natürlich kann es sinnvoll sein, auch Alternativen aufzuzeigen aber diese müssen Sinn haben, damit niemand beim Lernen in eine falsche Richtung geführt wird.

  • Da müsste eigentlich offensichtlich sein, dass die Anwendung, die ich in #32 zitiert habe, verfehlt ist.

    Kannst du erklären, wieso dieser Weg "verfehlt" ist? Wenn du zwei Container nebeneinander setzen möchtest, die die gleiche ausgangsgröße Größe haben sollen, ist das doch der Beste Weg dazu.

    Man kann natürlich auch mit flex oder inline-block etc. arbeiten, dann ist das mit der gleichen Größe aber problematischer.

  • Wenn du zwei Container nebeneinander setzen möchtest, die die gleiche ausgangsgröße Größe haben sollen, ist das doch der Beste Weg dazu.

    Inwiefern der beste Weg? Gerade auf das Beispiel, dass Grid vorzugsweise vor Flex zeigen soll?


    Man kann natürlich auch mit flex oder inline-block etc. arbeiten, dann ist das mit der gleichen Größe aber problematischer.

    NEIN!

    inline-block? Zum setzen einer gleichen Größe zweier Parts?

    Schon mal von flex-grow, flex-basis ect... gehört? Wo ist es problematisch?

Jetzt mitmachen!

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