ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ CSS Flexbox: Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅
ΠΠ°Π΄Π°Π²Π°Π»ΠΈΡΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ CSS Flexbox? ΠΠ°Π³Π»ΡΠ΄Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ.
CSS Flexbox β ΡΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π³ΠΈΠ±ΠΊΠΈΡ ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² Π·Π° ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅. Π ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΈΡΡΡ Π·Π΄Π΅ΡΡ. ΠΡ ΠΆΠ΅ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ CSS Flexbox Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³ΠΈΡΠΎΠΊ β Π½Π°ΡΡΠΎΡΡΠ°Ρ flex ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°.
- display: flex
- flex-direction
- justify-content
- align-items
- align-self
- flex-basis
- flex-grow
- flex-shrink
- flex
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ
Display: flex
Π Π°Π·Π±Π΅ΡΡΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ display flex CSS. ΠΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°:ΠΠ° Π½Π΅ΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ 4 div ΡΠ°Π·Π½ΡΡ
ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ div. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ div Π΅ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ display: block. ΠΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡ ΡΠΈΡΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ. Π Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ CSS display flex. Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ CSS Flexbox, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ flex ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊ:
Π’Π°ΠΊ Ρ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ flex-ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ CSS.
flex-direction
Π£ flex-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π΅ΡΡΡ Π΄Π²Π΅ ΠΎΡΠΈ: Π³Π»Π°Π²Π½Π°Ρ ΠΈ ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½Π°Ρ Π΅ΠΉ.ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π²Π΄ΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ β ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π±Π»ΠΎΠΊΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΡΡΠΎΠΈΠ»ΠΈΡΡ Π² Π»ΠΈΠ½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ display: flex. Π Π²ΠΎΡ flex-direction ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ°ΡΠ°ΡΡ Π³Π»Π°Π²Π½ΡΡ ΠΎΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ flex-direction: column Π½Π΅ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ ΠΎΡΠΈ, ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ. ΠΠ»Π°Π²Π½Π°Ρ ΠΎΡΡ ΡΠ°ΠΌΠ° ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ·.ΠΡΡΡ Π΅ΡΡ ΠΏΠ°ΡΠΎΡΠΊΠ° ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π»Ρ flex-direction: row-reverse ΠΈ column-reverse.
justify-content
ΠΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ:
Justify-content ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ 5 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
- tflex-start
- flex-end
- center
- space-between
- space-around
Space-between Π·Π°Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ. Space-around ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ.
align-items
ΠΡΠ»ΠΈ justify-content ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΡΡ, ΡΠΎ align-items ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΡΡ, ΠΏΠ΅ΡΠΏΠ΅Π½Π΄ΠΈΠΊΡΠ»ΡΡΠ½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ. ΠΠ΅ΡΠ½ΡΠΌΡΡ ΠΊ flex-direction: row ΠΈ ΠΏΡΠΎΠΉΠ΄ΡΠΌΡΡ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ align-items:
- flex-start
- flex-end
- center
- stretch
- baseline
Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ align-items: stretch Π²ΡΡΠΎΡΠ° Π±Π»ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°Π²Π½Π° auto. ΠΠ»Ρ align-items: baseline ΡΠ΅Π³ΠΈ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠ° ΡΠ±ΠΈΡΠ°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΈΠ½Π°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ°ΠΊ:
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠΌ justify-content Ρ align-items ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ Π΄Π»Ρ Π΄Π²ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² flex-direction:
align-self
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ:
ΠΠ»Ρ Π΄Π²ΡΡ
Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ align-self, Π° Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
β align-items: center ΠΈ flex-direction: row.
flex-basis
ΠΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ CSS Flexbox. flex-basis Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²Π΄ΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ»ΡΡΠΈΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈ Π²ΡΡΠΎΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²: flex-basis ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΠΎΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΈΡ
ΡΠΈΡΠΈΠ½Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈ.
flex-grow
ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°Π΄Π°Π΄ΠΈΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠΈΡΠΈΠ½Ρ Π² 120px:ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ flex-grow ΡΠ°Π²Π½ΠΎ 0. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π±Π»ΠΎΠΊΠ°ΠΌ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ
. ΠΠ°Π΄Π°Π΄ΠΈΠΌ flex-grow ΡΠ°Π²Π½ΡΠΌ 1 Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°:
Π’Π΅ΠΏΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈ Π·Π°Π½ΡΠ»ΠΈ ΠΎΡΡΠ°Π²ΡΠ΅Π΅ΡΡ ΠΌΠ΅ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅. ΠΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ flex-grow: 1? ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ flex-grow ΡΠ°Π²Π½ΡΠΌ 999:
Πβ¦ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. Π’Π°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ flex-grow ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ flex-grow, Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΎΠ½ΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ:
ΠΠ½Π°ΡΠ°Π»Π΅ flex-grow ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠ°Π²Π΅Π½ 1, Π² ΡΡΠΌΠΌΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ 6. ΠΠ½Π°ΡΠΈΡ, Π½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ Π½Π° 6 ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ 1/6 ΡΠ°ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅. ΠΠΎΠ³Π΄Π° flex-grow ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ 2, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° 7 ΡΠ°ΡΡΠ΅ΠΉ: 1 + 1 + 2 + 1 + 1 + 1. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ΅ΡΠΈΠΉ Π±Π»ΠΎΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 2/7 ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ β ΠΏΠΎ 1/7. Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
flex-grow ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΎΡΠΈ, ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
flex-shrink
ΠΡΡΠΌΠ°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ flex-grow. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ΅. flex-shrink ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π΅ Π²ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. ΠΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ
, Π° ΠΊΠ°ΠΊΠΈΠ΅ β Π½Π΅Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ flex-shrink Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΡΠ°Π²Π½ΠΎ 1. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π±Π»ΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΡΡ.ΠΠ°Π΄Π°Π΄ΠΈΠΌ flex-grow ΠΈ flex-shrink ΡΠ°Π²Π½ΡΠΌΠΈ 1:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ flex-shrink Π΄Π»Ρ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π° 0. ΠΠΌΡ Π·Π°ΠΏΡΠ΅ΡΠΈΠ»ΠΈ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΠΈΡΠΈΠ½Π° ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠ°Π²Π½ΠΎΠΉ 120px:
flex-shrink ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΠΏΠΎΡΡΠΈΡΡ
. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° flex-shrink ΡΠ°Π²Π΅Π½ 6, Π° Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΠΎΠ½ ΡΠ°Π²Π΅Π½ 2, ΡΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ Π² ΡΡΠΈ ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
flex
ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ flex-grow, flex-shrink ΠΈ flex-basis. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 0 (grow) 1 (shrink) auto (basis).Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° Π±Π»ΠΎΠΊΠ°:
Π£ ΠΎΠ±ΠΎΠΈΡ
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ flex-basis. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΎΠ±Π° Π±ΡΠ΄ΡΡ ΡΠΈΡΠΈΠ½ΠΎΠΉ Π² 300px (ΡΠΈΡΠΈΠ½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°: 600px ΠΏΠ»ΡΡ margin ΠΈ padding). ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π°ΡΠ½Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ
, ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ (Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ flex-grow) Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅, Π° Π²ΡΠΎΡΠΎΠΉ Π±Π»ΠΎΠΊ (Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ flex-shrink) Π±ΡΠ΄Π΅Ρ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅:ΠΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π² Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ CSS flexβ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ
ΠΠ°ΠΊ Ρ CSS Flexbox ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ?
ΠΠΎΠ³Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ, ΠΎΠ½ Π½Π΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠΉ, ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² Π΄Π²Π° ΡΠ°Π·Π° ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ flex-grow ΠΈ flex-shrink ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ΅ΠΌΠΏ ΡΠΎΡΡΠ° ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎ flex box CSS. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°: 640px. ΠΡΡΡΠ΅ΠΌ ΠΏΠΎ 20px Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π΄Π»Ρ padding, ΠΈ Ρ Π½Π°Ρ ΠΎΡΡΠ°Π½Π΅ΡΡΡ 600px Π΄Π»Ρ Π΄Π²ΡΡ
Π±Π»ΠΎΠΊΠΎΠ². ΠΠΎΠ³Π΄Π° ΡΠΈΡΠΈΠ½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΠΎΠΉ 430px (ΠΏΠΎΡΠ΅ΡΡ Π² 210px), ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ (flex-shrink: 1) ΡΠ΅ΡΡΠ΅Ρ 70px. ΠΡΠΎΡΠΎΠΉ Π±Π»ΠΎΠΊ (flex-shrink: 2) ΡΠ΅ΡΡΠ΅Ρ 140px. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ Π΄ΠΎ 340px, ΠΌΡ ΡΠ΅ΡΡΠ΅ΠΌ 300px. ΠΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ ΡΠ΅ΡΡΠ΅Ρ 100px, Π²ΡΠΎΡΠΎΠΉ β 200px. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈ Ρ flex-grow.
ΠΡΠ»ΠΈ ΠΏΠΎΠΌΠΈΠΌΠΎ flex CSS Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ CSS Grid, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½Π°ΡΠ΅ΠΉ ΡΡΠ°ΡΡΡΠΉ, Π³Π΄Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Flexbox ΠΈ Grid.
β
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, Π²Π°ΠΌ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π°ΡΠ° Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Flexbox ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°. ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΡΠ΅Π³ CSS, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π€Π»Π΅ΠΊΡΠ±ΠΎΠΊΡ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ.