Flexbox
CSS Flexbox
Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅?
Flexbox - ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² CSS3, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π³ΠΈΠ±ΠΊΠΎΠ΅ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π±Π»ΠΎΠΊ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΉ ΡΠΈΡΠΈΠ½Ρ/Π²ΡΡΠΎΡΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅.
Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ - Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ, ΠΎΡΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.

ΠΠ»Π°Π²Π½Π°Ρ ΠΎΡΡ (main axis) ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π²Π΄ΠΎΠ»Ρ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ - ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π΄Π»Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ - Π²Π½ΠΈΠ·). ΠΠ°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΠΎΡΠΈ - main start, main end
ΠΠΎΠΏΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΎΡΡ (cross axis) ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΠΎ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ. ΠΠ°ΡΠ°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ ΠΎΡΠΈ - cross start, cross end.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ Flexbox?
ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Flexbox Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΊ float
, display: inline-block
ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΡΠΈΡΠΈΠ½Π΅/Π²ΡΡΠΎΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ ΡΠΈΡΠΈΠ½Ρ/Π²ΡΡΠΎΡΡ;
ΠΎΡΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ Π±Π»ΠΎΠΊΠΈ Π²Π½ΡΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ;
ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π²ΡΡΠΎΡΠΎΠΉ Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π² Π½ΠΈΡ ;
ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ: ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ, ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· ΠΈΠ»ΠΈ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ ;
ΠΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
<div class="flex-container">
<div class="box box-1">Item 1</div>
<div class="box box-2">Item 2</div>
<div class="box box-3">Item 3</div>
<div class="box box-4">Item 4</div>
</div>
ΠΠΌΠ΅Π΅ΠΌ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ - flex-container ΠΈ Π΄Π΅ΡΠ΅ΠΉ Item 1
, Item 2
, Item 3
, Item 4
. ΠΠ°Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ CSS ΡΠ²ΠΎΠΉΡΡΠ²Π°:
.flex-container {
display: flex;
}
.box {
text-align: center;
width: 100px;
height:50px;
margin: 0 5px;
}
.box-1 {
width:50px;
background: #ff0000;
}
.box-2 {
width:70px;
background: #da2cab;
}
.box-3 {
width:90px;
background: #008000;
}
.box-4 {
background: #0000ff;
}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:

ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ display: flex
ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΡΡΡΠΎΠΈΠ»ΠΈΡΡ Π² ΡΡΠ΄ Π²Π΄ΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ.
ΠΠ°ΠΆΠ½ΠΎ!
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ "display: flex" Π²ΡΠ΅Π³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ Π±Π»ΠΎΠΊΡ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠΎΠ²Π½ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΠ°ΠΊΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Flexbox?
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ):
flex-direction: ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°: Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
row
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΠ΄.row-reverse
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΠ΄ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.column
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡcolumn-reverse
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: row. ΠΡΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅.
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ flex-direction
ΠΊΠ»Π°ΡΡΠ° .flex-container
Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΡΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
justify-content: Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π΄ΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ (ΠΎΠ±ΡΡΠ½ΠΎ - Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
flex-start
- Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ (main start).flex-end
- Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΊΠΎΠ½ΡΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ (main end).center
- Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ.space-around
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π²Π΄ΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΡΡΡΡΠΏΠ°ΠΌΠΈ ΠΏΠΎ ΠΊΡΠ°ΡΠΌ.space-between
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π²Π΄ΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ Π±Π΅Π· ΠΎΡΡΡΡΠΏΠΎΠ² ΠΏΠΎ ΠΊΡΠ°ΡΠΌ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: flex-start. ΠΡΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π² Π½Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΡ .flex-container
Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ justify-content: flex-end
. ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ justify-content
ΠΊΠ»Π°ΡΡΠ° .flex-container
Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΡΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
align-items: Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π΄ΠΎΠ»Ρ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ (ΠΎΠ±ΡΡΠ½ΠΎ - ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ). ΠΡΠΈΠ½ΡΠΈΠΏ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²
justify-content
, Π½ΠΎ Π² ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:flex-start
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ (cross start).flex-end
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ (cross end).center
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ.baseline
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈstretch
- ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²Π΄ΠΎΠ»Ρ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ (cross axis)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: stretch.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ Π²ΡΡΠΎΡΡ Π΄Π»Ρ flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ .box-1
- height: 100px;
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ align-items
ΠΊΠ»Π°ΡΡΠ° .flex-container
Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΡΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
flex-wrap: ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² - Π² ΠΎΠ΄Π½ΠΎ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
nowrap
- Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈwrap
- Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΎΠΌ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈwrap-reverse
- Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: nowrap.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠΈΡΠΈΠ½Ρ .flex-container
ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ width: 200px
ΠΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΆΠ°Π»ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² .flex-container
ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ flex-wrap: wrap
Π¨ΠΈΡΠΈΠ½Π° ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΡΠ°Π²Π½Π° 100px, ΡΡΠΎ Π² ΡΡΠΌΠΌΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ 200px (ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠΈΠ½Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°), ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΈΡΠ΅ ΠΈ Π½Π΅ Π²Π»Π°Π·ΡΡ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² width
ΠΈ flex-wrap
Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° ΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°):
align-self: ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π΄ΠΎΠ»Ρ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ align-self
Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ center
Π±Π»ΠΎΠΊΡ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ .box-3

ΠΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ - ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΡΠΈΠΉ Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΎΠ²Π½Π΅Π½ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΈ.
order: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ CSS.
ΠΠ°Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ order
:
.box-1 {
order: 3;
}
.box-2 {
order: 1;
}
.box-3 {
order: 4
}
.box-4 {
order: 2;
}
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
flex-grow: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ°ΡΡΡΠΆΠ΅Π½ΠΈΡ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ flex-grow
:
.box-1 {
flex-grow: 2;
}
.box-2 {
flex-grow: 1;
}
.box-3 {
flex-grow: 2;
}
.box-4 {
flex-grow: 3;
}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
flex-shrink: ΠΎ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΡΠΆΠ΅Π½ΠΈΡ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°.
ΠΠ°Π΄Π°Π΄ΠΈΠΌ Π½Π°ΡΠΈΠΌ ΡΠ΅ΡΡΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ flex-shrink
:
.box-1 {
flex-shrink: 0;
}
.box-2 {
flex-shrink: 1;
}
.box-3 {
flex-shrink: 3;
}
.box-4 {
flex-shrink: 2;
}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ ΠΠΠ’ΠΠΠ
:
ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
flex-basis: Π·Π°Π΄Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΡΠΈΠ½Ρ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠ°ΡΡΡΠΆΠ΅Π½ΠΈΠ΅
flex-grow
ΠΈΠ»ΠΈ ΡΡΠΆΠ΅Π½ΠΈΠ΅flex-shrink
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:auto
- Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π¨ΠΈΡΠΈΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΡΠΈΠ½Π΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ Π·Π°Π΄Π°Π½Π° ΡΠ²Π½Π° CSS ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.{ΡΠΈΡΠ»ΠΎ}
- ΡΠΈΡΠΈΠ½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π»ΡΠ±ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (px, %, em ΠΈ ΠΏΡ.)
ΠΠ°Π΄Π°Π΄ΠΈΠΌ ΡΡΠ΅ΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ flex-basis
:
.box-3 {
flex-basis: 200px;
}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ ΠΠΠ’ΠΠΠ
: ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° flex-basis
Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ².
ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΡΠ°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΊ: float, clear, vertical-align Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° flex-ΡΠ»Π΅ΠΌΠ΅Π½Ρ
ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Flexbox Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅?
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ 4 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ,ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΠΈ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡ ΡΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΡ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ
<section class="image-container">
<div class="item-1">
<img src="{path}"/>
</div>
<div class="item-2">
<img src="{path}"/>
</div>
<div class="item-3">
<img src="{path}"/>
</div>
<div class="item-4">
<img src="{path}"/>
</div>
</section>
CSS ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:

ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠ»Π°ΡΡΡ image-container
ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
display: flex
justify-content: space-around
justify-content: center
flex-direction: row-reverse
align-items: center
flex-direction: column-reverse
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ
item-1
,item-2
,item-3
,item-4
ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:order:{Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ 1 Π΄ΠΎ 4 Π² ΡΠ»ΡΡΠ°Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ}
align-self:
.item-1 {
align-self: center;
}
.item-2 {
align-self: flex-end;
}
.item-3 {
align-self: flex-start;
}
.item-4 {
align-self: flex-end;
}

Π’ΡΡ, ΡΡΡ ΠΈ ΡΡΡ ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Flexbox ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ Flex-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Last updated