Flexbox vs Twitter Bootstrap (o framework simile) [chiuso]


161

Di recente ho scoperto Flexboxquando stavo cercando una soluzione per rendere i div la stessa altezza, a seconda di quello più alto.

Ho letto la seguente pagina su CSS-tricks.com e mi ha convinto che flexboxè un modulo molto potente da imparare e usare. Tuttavia, mi ha anche fatto riflettere sul fatto che Twitter Bootstrap (e framework simili) offrono le stesse funzioni (+ ovviamente molto di più) con i loro sistemi di griglia.

Ora, le domande sono: quali sono i pro ei contro flexbox? C'è qualcosa che non si può fare con Flexbox che si può fare con un framework come Bootstrap (ovviamente parlando semplicemente del sistema a griglia)? Quale è più veloce se implementato su un sito Web?

Immagino che solo per il sistema a griglia sia più semplice da usare flexbox, ma cosa succede se stai già utilizzando un framework, c'è qualcosa che flexboxpuò aggiungere?

Ci sono dei motivi per scegliere flexboxil "sistema di griglia" rispetto a un framework?


5
Uso Flexbox con Bootstrap.
Aibrean,

2
Dai un'occhiata alla Zurb's Foundation For Apps . è interamente costruito sulla parte superiore del sistema a griglia Flexbox
Salem Ouerdani il


1
Bootstrap 4 è ora flexbox per impostazione predefinita! Flexbox è uno strumento di layout estremamente potente, che offre flessibilità e controllo senza pari al sistema di griglia e ai componenti principali. Viene a scapito del rilascio del supporto IE9, ma apporta miglioramenti significativi al layout, all'allineamento e al dimensionamento dei componenti.
Nermien Barakat,

5
Non sono d'accordo sul fatto che questo dovrebbe essere chiuso come opinione. Chi chiede è fatto, non opinione. "Quali sono i pro e i contro di flexbox?" Il richiedente (come me) sta cercando di determinare il punto di forza e gli svantaggi di ciascun sistema.
Darin Cardin,

Risposte:


107

Per un paio di motivi, flexbox è molto meglio di bootstrap:

  • Bootstrap usa i float per creare il sistema a griglia, che molti direbbero non è pensato per il web, dove flex-box fa il contrario rimanendo flessibile alle dimensioni e al contenuto degli oggetti; stessa differenza dell'utilizzo dei pixel rispetto a em / rem o come il controllo dei div utilizzando solo i margini e il riempimento e non impostando mai una dimensione predefinita.

  • Bootstrap, poiché utilizza i float, necessita di clearfix dopo ogni riga, altrimenti otterrai div disallineati di diversa altezza. Flex-box non lo fa e controlla invece il div più alto nel contenitore e si attacca alla sua altezza.

L'unica ragione per cui andrei con bootstrap su flex-box è la mancanza di supporto del browser (principalmente IE) (già morto). E a volte ricevi comportamenti diversi da Chrome e Safari anche se entrambi usano lo stesso motore webkit.

Modificare:

A proposito se l'unico problema che stai affrontando sono le colonne di uguale altezza, ci sono alcune soluzioni per questo:

  • Puoi usare display: tableil genitore, e display: table-cell;il figlio. Vedi Come ottenere la stessa altezza in display: table-cell

  • Puoi utilizzare il posizionamento assoluto su ogni div:
    position: absolute; top: 0; bottom: 0;

  • C'è anche la soluzione jquery / JS e un'altra soluzione che non ricordo al momento che proverò ad aggiungere in seguito.

Modifica 2:

Controlla anche http://chriswrightdesign.com/experiments/flexbox-adventures/ & https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties su come funziona la flex-box.

Modifica 3: https://kyusuf.com/post/almost-complete-guide-to-flexbox-without-flexbox

Modifica 4: https://caniuse.com/#feat=flexbox


1
Grazie per il tuo commento. Non sono riuscito a trovare spiegazioni su quale fosse il "migliore" dei due, quindi spero che la mia domanda (e le tue risposte future e) aiuteranno le persone a decidere. Fortunatamente, IE 11 sta ottenendo una quota di mercato maggiore in questo momento rispetto alle tre versioni precedenti combinate (di cui supporta IE10 flexbox), quindi ai miei occhi è sicuro da usare. Qual è la tua opinione sull'uso di una combinazione di un framework e flexbox? Naturalmente, ignorando il sistema a griglia del framework durante l'utilizzo.
Rvervuurt,

2
Flexbox può essere utilizzato per creare un sistema di griglia più potente in un modo più semplice, ma non è un sistema di griglia da solo. Meglio, i sistemi di griglia più semplici mostrano alcune idee e ZURB Foundation for Apps utilizza la flexbox per scopi di layout
ckuijjer

in realtà puoi usare entrambi se vuoi, che credo sia la scelta migliore perché non hai bisogno di avvolgere la tua mente intorno a qualcosa a cui sei già abituato da un po 'di tempo (come per quelli che non sanno nulla oltre BS), ma per me il punto di forza del flex-box è che ha la stessa flessibilità che puoi ottenere solo usando JS ma senza scrivere una sola riga di codice.
CTF0,

Dati di piena compatibilità: caniuse.com/#feat=flexbox Si noti che anche Android precedente ha dei problemi.
Louvre,

dam, e ho pensato che siamo quasi lì per usarlo, sembra che ci vorrà un altro anno o qualcosa che lo vediamo in natura, grazie per l'heads-up.
CTF0,

6

Non ho mai usato Flexbox (ne ho letto e mi sembra ottimo) ma sono uno sviluppatore di front-end Bootstrap. Ti suggerisco di provare a stampare le pagine Flexbox prima di prendere una decisione finale. Sai ... A volte gli stili di stampa sono un terribile mal di testa e Bootstrap mi aiuta molto quando devo progettare formati di stampa.


questo è esattamente il motivo per cui dovresti usare la griglia float solo per i div stampabili insieme alle classi di stampa bootstrap
ctf0

1

Temo che ti sia perso un altro articolo sui trucchi CSS :

Nota: il layout Flexbox è più appropriato per i componenti di un'applicazione e per i layout su piccola scala, mentre il layout Grid è destinato a layout su larga scala.

Non significa che potresti non provare, ma pensaci due volte. E tutto dipende dal supporto del browser desiderato alla fine.


24
Assicurati di capire che l'articolo parla di un nuovo layout Grid emergente, non della griglia di bootstrap.
prende il

5
Devo dire che mi è mancato! :) Grazie per la correzione.
Kout,

Sottovalutato, hai sottolineato una chiara distinzione su come usare la flex box e la griglia senza conflitti di intenti e scopi, e per me, non importa se intendi griglia di bootstrap o ayout
Ahmad Farouk
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.