CSS box model/grid notatki 5.11
- Box Model
- Każdy element w CSS składa się z:
- Content – zawartość elementu (tekst, obraz, itp.)
- Padding – odstęp między zawartością a borderem
- Border – obramowanie elementu
- Margin – odstęp między elementem a innymi elementami
box-sizing:content-box→ domyślnie, szerokość = content, padding i border dodawane na zewnątrzborder-box→ szerokość = content + padding + border (łatwiejsze liczenie)
2. Wycentrowane divy
- Poziome:
margin: 0 auto; - Poziome + pionowe: użycie flexbox
display: flex;justify-content: center;align-items: center;
3. Width / Height
- Można ustawiać w px, %, vh, vw, em
min-width/max-width→ ograniczają minimalną/maksymalną szerokośćmin-height/max-height→ ograniczają wysokość
4. Padding, Margin, Border
padding: 20px;→ wypełnienie od zawartości do borderumargin: 20px;→ odstęp od innych elementówborder: 2px solid blue;→ obramowanie
5. Overflow
overflow: auto;→ pojawiają się paski przewijania tylko jeśli zawartość nie mieści się w elemencieoverflow-x / overflow-y→ kontrola przewijania w poziomie/pionie
6. Display
block→ element zajmuje całą szerokość, nowa liniainline→ w linii, nie można ustawić width/heightinline-block→ w linii, ale można ustawić width/heightflex→ włącza flexboxgrid→ włącza CSS Gridnone→ element niewidoczny
7. Position
absolute→ pozycjonowany względem najbliższego rodzica zposition: relativefixed→ pozycjonowany względem okna, nie przesuwa się przy scrollowaniurelative→ względem normalnej pozycji elementusticky→ „przyklejony” do scrolla w określonym miejscu
8. Flexbox
- Flex container → element nadrzędny z
display: flex - Flex item → dzieci flex container
- Właściwości:
justify-content→ wyrównanie w głównym kierunkualign-items→ wyrównanie w kierunku poprzecznymflex-grow / shrink / basis→ jak item rośnie / kurczy się
9. CSS Grid
display: grid→ tworzy siatkęgrid-template-columns: 1fr 2fr 1fr→ proporcje kolumn (fr= fraction / część dostępnej przestrzeni)gap→ odstępy między kolumnami i wierszami
10. Responsywność
- Jednostki elastyczne:
%,vh,vw,em - Media queries:
@media (max-width: 600px) {.box { width: 95%; padding: 10px; }