Layout & Afișare în CSS3: Ghid Tehnic și Design Responsive
Arhitectura layout-ului web s-a eliberat definitiv de vechile trucuri cu float,
clear sau tabele HTML.
CSS3 a inaugurat era sistemelor bidimensionale și unidimensionale native: Flexible Box
(Flexbox) și CSS Grid Layout,
completate de subgrid, proprietatea universală gap, poziționarea
position: sticky și revoluționarele Container Queries.
Acest ghid detaliază comportamentul containerelor părinte și al elementelor copil, algoritmii de distribuire
a spațiului liber, alinierea pe ambele axe și bunele practici pentru crearea structurilor responsive fără
clase utilitare în exces.
Flexbox bazic
Aliniere flexibilă pe o singură axă (orizontală sau verticală)
Declararea display: flex transformă elementul părinte într-un container flexibil. Copiii
direcți devin itemi flexibili care se pot extinde, contracta și alinia ușor folosind
justify-content (pentru axa principală) și align-items (pentru axa secundară).
Grile bidimensionale profesionale cu coloane și rânduri
display: grid este primul sistem bidimensional adevărat din CSS. Prin combinarea funcției
repeat() cu auto-fit și minmax() (ex:
repeat(auto-fit, minmax(200px, 1fr))), puteți crea grile de carduri 100% responsive fără nicio
media query!
Proprietatea gap (împreună cu row-gap și column-gap) adaugă spațiere
exactă DOAR între elementele vecine dintr-un container flex sau grid, eliminând hack-urile vechi cu margini
negative.
cod CSS3
.container-flex {
display: flex;
gap: 16px;
}
rezultat vizual
Cutie 1
Cutie 2
flex-grow / shrink / basis
Dimensionarea avansată a itemilor flexibili
flex-grow determină cât de mult se extinde un item pentru a umple spațiul gol,
flex-shrink cât de mult se micșorează, iar flex-basis definește dimensiunea sa
inițială înainte de distribuție.
Construiți layout-ul întregii pagini descriind vizual zonele într-un string ASCII (ex:
"head head" "nav main"), atribuind apoi elementele HTML direct prin
grid-area: head.
Raporturi de aspect fixe pentru imagini și carduri
Proprietatea aspect-ratio menține automat raportul dintre lățime și înălțime (ex:
16 / 9 sau 1 / 1) fără hack-uri de padding-top procentual, prevenind
dereglarea layout-ului la încărcare.
Alinierea elementelor din sub-grile cu grila părinte
Valoarea grid-template-columns: subgrid sau grid-template-rows: subgrid permite
copiilor dintr-un element grid să se alinieze direct la liniile de grilă ale părintelui lor suprem.
Centrare rapidă pe ambele axe într-o singură linie
Proprietatea place-items: center combină align-items și
justify-items, permițând centrarea absolută a oricărui element pe ambele axe (orizontal și
vertical) într-o singură linie de cod.
Componente responsive independente de dimensiunea ecranului
Spre deosebire de Media Queries (care verifică lățimea ferestrei browserului), @container
permite unei componente să se adapteze în funcție de lățimea propriului container părinte.
Proprietățile column-count și column-gap împart un bloc lung de text în mai multe
coloane verticale fluide, la fel ca în jurnalele sau revistele tipărite.
Textul curge automat din prima coloană direct în cea de-a doua coloană pe măsură ce spațiul se umple.
position: sticky
Elemente adezive fixate automat la derulare
Un element cu position: sticky; top: 0; funcționează ca poziționat relativ până când atinge
marginea specificată la scroll, moment în care rămâne lipit pe ecran.
grid-auto-flow: dense sau row vă ajută să decideți modul în care elementele se
aliniază și completează rândurile dintr-un grid complex.
cod CSS3
.grid {
display: grid;
grid-auto-flow: dense;
}
rezultat vizual
A
B
C
D
align-self
Alinierea individuală a elementelor din Flexbox
align-self permite un singur element dintr-un flex container să se alinieze diferit de restul,
de la start la end sau stretch.
cod CSS3
.item {
align-self: center;
}
rezultat vizual
A
B
justify-self
Alinierea individuală a elementelor din Grid
La fel ca align-self, justify-self permite un element să se alinieze în mod
individual pe axa orizontală a grid-ului, fără a afecta restul elementelor.
cod CSS3
.item {
justify-self: end;
}
rezultat vizual
A
B
order
Reordonarea elementelor fără a schimba markup-ul
Proprietatea order este extrem de utilă în machete responsiv, când un element trebuie să apară
în altă ordine pe mobil decât pe desktop.
Proprietățile safe-area-inset previn suprapunerea conținutului cu butoanele de navigare,
camera sau notch-ul dispozitivului, un punct crucial pentru design mobile.
place-self este un shorthand util pentru align-self și justify-self,
accesibil atunci când ai nevoie să centrezi rapid un item într-o grilă fără a rescrie reguli.
cod CSS3
.card {
place-self: center;
}
rezultat vizual
item 1
item 2
auto-fit + minmax()
Grile responsiv fără media queries
Combinarea repeat(auto-fit, minmax(...)) creează grile flexibile care se adaptează automat la
dimensiunea ecranului și la numărul de elemente.
Acest site folosește module cookie tehnice, de analiză a traficului (Google Analytics) și de publicitate (Google AdSense) pentru a oferi o experiență optimă și conținut relevant conform politicilor Google și legislației GDPR. Puteți alege să acceptați sau să refuzați modulele cookie non-esențiale.