În acest tutorial, vom învăța cum să profitați de flexbox pentru a crea un formular receptiv. Ceea ce este interesant (și incitant în același timp) este faptul că flexbox ne permite să construim formularul nostru fără a utiliza orice interogări media.
Înainte de a începe, să vedem la ce vom lucra (verificați versiunea mai mare pentru a vedea modul în care se modifică aspectul formularului):
Atunci, mai întâi, mai întâi, să săpăm în structura formei. O vom marca după cum urmează:
.flex-exterior
listă neordonată pentru gruparea diferitelor elemente de formă.flex-interior
listă neordonată pentru a grupa casetele de selectare. Asta e! Prin definirea a doar două liste neordonate (am fi putut folosi și liste comandate), am construit o formă foarte curată. Iată cum arată:
Notă: noi folosim p
element în loc de eticheta
element înainte de .flex-interior
listă. Acest lucru se datorează faptului că, în acest caz particular, nu are sens să se folosească eticheta
etichetă. Această etichetă trebuie utilizată numai pentru a asocia o etichetă de text cu un control al formularului.
Iată marcajele pentru casetele de selectare:
Cu gata pregătită, formularul netilat arată astfel:
Aceasta nu va fi cea mai frumoasă formă pe care ați văzut-o vreodată, dar funcționează! Este semantic, accesibil și fluid; aspecte care sunt cu siguranță mai importante decât orice.
În acest moment, suntem gata să începem să aplicăm anumite stiluri.
Să începem prin adăugarea normaliza și autoprefixer la setările stiloului nostru:
Apoi vom identifica containerele flexibile. În cazul nostru, următoarele elemente:
.flex-exterior
listă. .flex-interior
care conține toate casetele de selectare.În plus, dorim să centurăm vertical elementele flexibile pe axa transversală.
Pentru a realiza acest comportament, am stabilit câteva reguli CSS inițiale:
.flex-exterior li, .flex-interior afișaj: flex; flex-wrap: folie; aliniere: centru;
Următorul pas este să specificați lățimile elementelor flexibile. Începem cu elementele flexibile din .flex-exterior
listă.
Principalele cerințe:
Ce ne dă acest lucru? Fiecare etichetă împreună cu elementul de formă asociat vor fi afișate pe un singur rând orizontal atunci când lățimea formularului este de cel puțin 340 px. În orice alt caz, toate elementele de formă (cu excepția casetelor de selectare, așa cum vom vedea într-o clipă) vor stivă vertical.
Notă: valorile menționate mai sus sunt arbitrare - le puteți modifica în funcție de nevoile dvs..
.flex-exterior> li> etichetă, .flex-exterior li p flex: 1 0 120px; max-lățime: 220px; .flex-exterior> li> etichetă + *, .flex-interior flex: 1 0 220px;
În sfârșit, pentru butonul de trimitere, care este, de asemenea, un element flexibil, definim câteva stiluri de bază:
.butonul flex-exterior li margin-left: auto; padding: 8px 16px; frontieră: nici una; fundal: # 333; culoare: # f2f2f2; text-transform: majuscule; întrerupere litere: .09em; raza de graniță: 2px;
Hai să stilizăm acum casetele de selectare. Amintiți-vă că ambalajul lor flexibil are o lățime minimă de 220px.
În primul rând, setăm lățimea elementelor flexibile care sunt părinții imediați ai casetelor de selectare la 100px:
.flex-interior li lățime: 100px;
Apoi, profităm de justifică conținut
pentru a le alinia pe axa principală. Rețineți că această proprietate are valori diferite, dar pentru acest exemplu, suntem interesați doar de spațiu între
valoare:
.flex-interior justify-content: spațiu între;
Această valoare funcționează bine și ne permite să realizăm o aliniere consecventă pentru casetele de selectare și etichetele acestora. Un lucru pe care trebuie să-l menționăm este faptul că această valoare a proprietății poate distribui în mod ciudat elementele rândului final. La anumite lățimi ale ferestrei de vizualizare veți vedea ceva similar:
Observați alinierea ultimelor două elemente flexibile. Dacă, din anumite motive, nu vă place acest aspect și preferați să apară unul lângă celălalt, puteți încerca ceva de genul:
justifică conținut
proprietate din ambalajul flexibil.lățime: 50%
).Lățime: 25%
in loc de lățime: 50%
.Mai presus de toate, este important să înțelegem două lucruri:
flex: 1 100px
. Înainte de a pleca, să adăugăm o oarecare estetică pentru a face lucrurile mai reprezentative. Alegeți separat fila CSS din demonstrația de mai jos pentru a vedea unde au fost adăugate culorile și distanțele:
După cum puteți vedea, cu marcarea minimă și puterea flexboxului, am reușit să construim o formă receptivă. Sperăm că acum ați câștigat câteva cunoștințe utile care vă vor ajuta să vă construiți propriile formulare flexbox.
Dacă doriți să luați această formă un pas mai departe, am două provocări pentru dvs.: