Elemente positionieren: Welche Methode?

  • Hallo,
    ich kenne 3 Methoden um Elemente zu positionieren. Welche von den 3 sollte man eurer Meinung nach verwenden?

    1. Float
    2. Flexbox
    3. Grid

    * Flexbox ist in IE10 nicht möglich bzw. nur mit Prefixen. Außerdem kann man damit keine komplizierten Grids erstellen.
    * Grid unterstützen die meisten Browser nicht und es könnte zu Problemen mit CMS geben, weil der Code dadurch schwerer wartbar ist.
    * Float ist zwar schwerer aber dafür funktioniert float auch bei älteren Browsern.


    Deswegen, würde ich immer noch auf float setzen und die anderen Techniken noch nicht einsetzen.

    Was würdet ihr verwenden und warum?
    Was sagt ihr zu meinen Kritikpunkten bezüglich Flexbox und Grid?

  • Hallo

    Du bist leider teilweise falsch und leider teilweise veraltet informiert.

    Der IE10 und alle noch älteren Browser werden in der Praxis nicht mehr verwendet. Daran ändert auch das ominöse Unternehmen nichts, dass regelmäßig auftaucht und noch ganz viele, wirklich und ernsthaft ganz viele, alte Rechner verwendet, die je nach Geschichte nicht ersetzt werden dürfen oder aus technischen Gründen nicht ersetzt werden können.

    Geschichte wiederholt sich: Die Geschichte haben auch schon der IE6 und der IE8 mit der Einführung von neuen CSS-Techniken erlebt. Allen ist gleich: Erlogen von Webseitenerstellern, die mit den neuen CSS-Möglichkeiten überfordert sind. Darauf solltest du nicht reinfallen. Neutrale Statistiken wie die von Can I Use sind seriöser.

    Alle drei von dir beschriebenen Methoden haben schlicht unterschiedliche Aufgaben. Deshalb können sie auch überhaupt nicht verglichen werden. Deshalb ist auch sachlich korrekt die CSS-Möglichkeiten jeweils gemäß ihrer Aufgabe einzusetzen.

    Float ist und war nur dafür gedacht Text andere Elementen, in der Regel Bilder, umfließen zu lassen. Es wurde jahrelang für Layouts mißbraucht, da es keine besseren oder gar speziell für das Layout entwickelte CSS-Anweisungen gab. Mit der Einführung von Flexbox ist die Verwendung von Float zum Layouten deshalb sachlich falsch, der Mißbrauch von Float ist nicht mehr notwendig.

    Flexbox kann schon seit zwei Jahren problemlos ohne Präfixe verwendet werden. Flexbox hat das Hauptproblem von vielen Webseitenerstellern nicht verstanden zu werden, die es deshalb mit den üblichen, aber falschen, Ausreden, ablehnen und verteufeln. Selbstverständlich können mit Flexbox auch komplizierte Grids erstellt werden. Wer etwas anderes behauptet hat Flexbox und seine Möglichkeiten nicht verstanden. Wobei komplizierte Grids den Zugang zu Webseiten erschweren und deshalb vermieden werden sollten.

    CSS-Grid wird inzwischen (seit März letzten Jahres) von allen gängigen Browsern unterstützt. Leider nicht vom noch relevanten IE11 und älteren Edge-Versionen. Für die gibt es auch keine Abhilfen mit Präfixen. CSS-Grid wird sich trotzdem schneller als seinerzeit Flexbox durchsetzen, da es überforderte Webseitenersteller sehr an deren geliebte Tabellen erinnert. Allerdings lassen sich meist problemlos Fallbacks erstellen, so dass CSS-Grid auch heute schon eingesetzt werden kann.

    Keine der drei genannten CSS-Anweisungen ist veraltet. Sie haben alle ihre Aufgaben und sollten auch entsprechend verwendet werden.

    Wenn du mit Flexbox und CSS-Grid überfordert bist ist das dein Problem. Du kannst deine Webseiten gerne mit deinen Möglichkeiten erstellen.

    Kritisch wird es aber, wenn überforderte Webseitenerstellern dritten Personen, die sich mit HTML und CSS noch nicht gut auskennen, Flexbox, CSS-Grid oder andere aktuelle CSS-Möglichkeiten unsachlich madig machen wollen, nur weil sie damit überfordert sind.

    Gruss

    MrMurphy

    3 Mal editiert, zuletzt von MrMurphy (27. Januar 2018 um 10:50)

  • Zitat

    Selbstverständlich können mit Flexbox auch komplizierte Grids erstellt werden.

    Auch dieses Grid, welches im Anhang skizziert ist, sodass es vom IE11 Browser unterstützt wird?

    Zitat

    CSS-Grid wird inzwischen (seit März letzten Jahres) von allen gängigen Browsern unterstützt. Leider nicht vom noch relevanten IE11 und älteren Edge-Versionen.

    Wenn man Websiten erstellen muss, die auch im IE11 laufen sollen, dann muss man auf Grid ganz verzichten. Was soll man in diesem Fall tun? Also muss man doch, auf Float umsteigen?

    Zitat

    CSS-Grid wird sich trotzdem schneller als seinerzeit Flexbox durchsetzen

    Fakt ist aber wenn man ein CMS verwendet, dann ist CSS Grid schwerer wartbar als float. Warum sollte man also Grid anstatt Float benutzen, wenn es schwerer wartbar ist?

    Zitat

    Wenn du mit Flexbox und CSS-Grid überfordert bist ist das dein Problem. Du kannst deine Webseiten gerne mit deinen Möglichkeiten erstellen.

    Kritisch wird es aber, wenn überforderte Webseitenerstellern dritten Personen, die sich mit HTML und CSS noch nicht gut auskennen, Flexbox, CSS-Grid oder andere aktuelle CSS-Möglichkeiten unsachlich madig machen wollen, nur weil sie damit überfordert sind.

    Ich finde, CSS Grid und Flexbox einfacher als Float. Mir wurde nur von Grid abgeraten, da es von IE11 nicht unterstützt wird.
    Ich wollte, Grid und Flexbox nicht schlecht machen. Amliebsten, würde ich auch lieber Grid und Flexbox verwenden.

  • Hallo

    Zitat

    Auch dieses Grid, welches im Anhang skizziert ist, sodass es vom IE11 Browser unterstützt wird?

    Ja. Die Frage zeigt dass du Flexbox überhaupt nicht kennst.

    Aber du kannst natürlich das Layout mit Inhalt (jeweils unterschiedlich langen Sätzen) mit Float erstellen und vorzeigen, wenn du meinst, dass es mit Float einfacher zu erstellen ist. Einfach sachlich falsche Behauptungen aufzustellen bringt nichts.

    Zitat

    Wenn man Websiten erstellen muss, die auch im IE11 laufen sollen, dann muss man auf Grid ganz verzichten. Was soll man in diesem Fall tun? Also muss man doch, auf Float umsteigen?

    Nein, auf Flexbox. Float wäre in diesem Fall sachlich falsch.

    Zitat

    Fakt ist aber wenn man ein CMS verwendet, dann ist CSS Grid schwerer wartbar als float.

    Nein, genau umgekehrt. CSS-Grid und Flexbox erleichtern das Erstellen, Anpassen und Warten von Layouts.

    Zitat

    Amliebsten, würde ich auch lieber Grid und Flexbox verwenden.

    Nichts hindert dich daran so auch loszulegen.

    Für dein Layout schlage ich den folgenden HTML-Quelltext vor, erforderliche zusätzliche Container können natürlich noch hinzugefügt werden:

    Dann haben wir beide die gleiche Grundlage. Das Ergebnis könnte dann folgendermaßen aussehen:

    Du erstellst das Layout mit Float und ich mit Flexbox, anschließend vergleichen wir unser CSS. Dann kann sich jeder selbst ein Bild machen welche Lösung übersichtlicher ist. Wenn du möchtest können wir das Layout auch zusätzlich responsiv machen. Das sollte heutzutage in Zeiten von Smartphones und Tablets eigentlich selbstverständlich sein.

    Gruss

    MrMurphy

    3 Mal editiert, zuletzt von MrMurphy (27. Januar 2018 um 22:17)

  • Als allererstes möchte ich sagen, dass ich bereit bin neues zu lernen und kein Problem habe zuzugeben, falls ich falsch liege.


    Zitat

    Nein, auf Flexbox. Float wäre in diesem Fall sachlich falsch.

    Mir wurde gesagt IE 11 hat noch einige Flexbox Bugs. Warum also Flexbox?


    Zitat

    Nein, genau umgekehrt. CSS-Grid und Flexbox erleichtern das Erstellen, Anpassen und Warten von Layouts.

    Hier wurde mir auch das Gegenteil gesagt. Wenn man Inhalt 6 oder 3 aus dem Grid entfernt. Muss das Grid, dann nicht neu aufgesetzt werden? Was dann bedeutet, es ist aufwendiger zu warten.
    Warum bist du also der Meinung, dass Flexbox oder Grid leichter zu warten ist als float?


    Zitat

    Du erstellst das Layout mit Float und ich mit Flexbox, anschließend vergleichen wir unser CSS.

    Ehrlich gesagt, könnte ich das Layout mit float nicht erstellen. Dazu hab ich noch zu wenig Wissen.
    Könntest du noch deine CSS Anweisungen posten? Dann hätte ich ein Grid, welches mit Flexbox erstellt wurde und kann das als Grundlage nehmen.
    Dann hätte ich ein Beispiel, wie es richtig funktioniert.

  • Hallo

    Zitat

    Mir wurde gesagt IE 11 hat noch einige Flexbox Bugs. Warum also Flexbox?

    Weil die vermeintlichen Bugs meist problemlos vermieden werden können.

    Zitat

    Wenn man Inhalt 6 oder 3 aus dem Grid entfernt. Muss das Grid, dann nicht neu aufgesetzt werden?

    Und für das viel kompliziertere Float gilt das nicht? Die erforderlichen Anpassungen bei Flaot sind viel komplizierter.

    Zitat

    Ehrlich gesagt, könnte ich das Layout mit float nicht erstellen.

    Wie kommst du dann zu dem Ergebnis Float sei in der Anwendung einfacher als Flexbox oder CSS-Grid?

    Webseiten ohne Inhalt oder mit sehr kurzem Inhalt oder sich wiederholendem gleichlangem Inhalt (Lorem ipsum ...) sind zum Testen nicht geeignet. Viele Probleme tauchen dann erst mit realem Inhalt auf. Dazu erstelle ich keine Beispiele.

    Auch wenn dein Layoutwunsch praxisfremd ist kann ich dazu ein Beispiel geben, das mit Flexbox auch im IE11 funktioniert:

    Zu diesem HTML:

    dann dieses CSS

    Gruss

    MrMurphy

    Einmal editiert, zuletzt von MrMurphy (28. Januar 2018 um 23:54)