CSS FLEX- ի կետերը տարրերի միջեւ: CSS- ի հետ հավասարեցնելով բլոկները `օգտագործելով Flex բեռնարկղ

CSS Flexbox (Տուփի ձեւավորման ճկուն մոդուլ) - Flexible կուն բեռնարկղերի ձեւավորման մոդուլը տարրերի դիզայնի մեթոդ է, առանցքի հիմքը հիմնված է:

FlexBox- ը բաղկացած է դուրս flex բեռնարկղ (Flex բեռնարկղ) մի քանազոր flexible կուն իրեր (Flex նյութեր), Flexible կուն տարրերը կարող են կառուցվել լարային կամ սյունակում, իսկ մնացած ազատ տարածքը նրանց միջեւ բաժանվում է տարբեր ձեւերով:

FlexBox- ի մոդուլը թույլ է տալիս լուծել հետեւյալ առաջադրանքները.

  • Տեղադրեք տարրերը չորս ուղղություններից մեկում. Ձախից աջ, աջ ձախ, վերեւից ներքեւ կամ ներքեւ:
  • Ընդունեք տարրերի ցուցադրման կարգը:
  • Ավտոմատ կերպով որոշեք իրերի չափերը, որպեսզի դրանք տեղավորվեն մատչելի տարածության մեջ:
  • Լուծեք խնդիրը հորիզոնական եւ ուղղահայաց կենտրոնների հետ:
  • Փոխանցեք տարրերը բեռնարկղի ներսում, առանց թույլ տալու դրա արտահոսքը:
  • Ստեղծել նույն բարձրության սյուներ:
  • Ստեղծեք սեղմված էջի ներքեւի մասում:

FlexBox- ը լուծում է հատուկ առաջադրանքներ. Օրինակ, նավիգացիոն վահանակի ստեղծում, քանի որ Flex Elements- ը կարող է տեղադրվել միայն առանցքների վրա:

Մոդուլի եւ խաչաձեւ զննարկիչ լուծումների ներկայիս խնդիրների ցանկը, որոնց համար կարող եք կարդալ Ֆիլիպ Ուոլթոնի հոդվածում:

Ինչ է FlexBox- ը

Աջակցեք զննարկիչներին

Այսինքն. 11.0, 10.0 -M-
Firefox. 28.0, 18.0-Մոզ-
Chrome: 29.0, 21.0-WebKIT-
Safari: 6.1 -Մենք-
Օպերա. 12.1 -EWBKIT
ios Safari: 7.0 -webkit-
Օպերա մինի. 8
Android զննարկիչ. 4.4, 4.1 -11-WebKIT-
Chrome Android- ի համար. 44

1. Հիմնական հասկացություններ

ՆկՂ 1. FlexBox մոդելը

FlexBox մոդուլը նկարագրելու համար օգտագործվում է տերմինների հատուկ շարք: Flex-Flow արժեքի եւ ձայնագրման ռեժիմը որոշում է այս պայմանների նամակագրությունը ֆիզիկական ուղղություններով. Վերեւ / աջ / ներքեւ / ձախ, առանցք, ուղղահայաց / բարձրություն:

Հիմնական առանցքը - Առանցքը, որի կողքին դրված են Flex տարրերը: Այն տարածվում է հիմնականում չափում:

Հիմնական սկիզբը եւ հիմնական ծայրը - Գծեր, որոնք սահմանում են Flex բեռնարկղի նախնական եւ վերջնական կողմը, որի համեմատությամբ կան Flex տարրեր (սկսած հիմնական սկիզբը դեպի հիմնական սկիզբ):

Հիմնական չափը) - Flex բեռնարկղի կամ Flex տարրերի լայնությունը կամ բարձրությունը, կախված նրանից, որ դրանք հիմնականում չափվում են, որոշեք Flex բեռնարկղի կամ Flex- ի հիմնական չափը:

Խաչ առանցք - առանցքը ուղղահայաց է հիմնական առանցքին: Այն տարածվում է լայնակի հարթության մեջ:

Խաչի մեկնարկ եւ խաչի ավարտ - Գծեր, որոնք սահմանում են լայնակի առանցքի նախնական եւ վերջնական կողմը, որի համեմատ կան Flex տարրեր:

Խաչի չափը) - Flex-բեռնարկղի կամ Flex տարրերի լայնությունը կամ բարձրությունը, կախված նրանից, թե որն է լայնակի հարթության մեջ, նրանց լայնակի չափն է:


ՆկՂ 2. Տողի եւ սյունակի ռեժիմը

2. Flex-բեռնարկղ

Flex բեռնարկղը իր բովանդակության համար սահմանում է նոր ճկուն ձեւաչափման ենթատեքստ: Flex բեռնարկղը բլոկային բեռնարկղ չէ, ուստի այդպիսի CSS հատկություններ, ինչպիսիք են float, պարզ, ուղղահայաց-հավասարեցումը, չեն աշխատում երեխաների տարրերի համար: Բացի այդ, Flex բեռնարկղը չի ազդում սյունակի վրա. * Հատկությունների վրա, ստեղծելով խոսնակներ տեքստի եւ կեղծ տարրերի մեջ :: առաջին գիծ եւ :: առաջին տառ:

FlexBox Markup Model- ը կապված է CSS գույքի որոշակի արժեքի հետ `ծնողական HTML Element- ի ցուցադրման համար, որոնք պարունակում են ինքնին ենթահավաքի բլոկներ: Այս մոդելի օգտագործմամբ տարրերը վերահսկելու համար հարկավոր է ցուցադրել ցուցիչի գույքը հետեւյալ կերպ.

Flex-Container (/ * Ստեղծում է Flex-Container Block * / Display. -WEBKIT-Flex; Display ուցադրում. Flex;). ; Ցուցադրել. Inline-flex;)

Այս հատկությունների արժեքները տեղադրելուց հետո յուրաքանչյուր երեխայի տարր ինքնաբերաբար դառնում է Flex տարր, տեղադրելով մեկ շարքում (հիմնական առանցքի երկայնքով): Այս դեպքում բլոկը եւ փոքրատառ տարրերը հավասարապես պահում են, այսինքն: Բլոկների լայնությունը հավասար է նրանց բովանդակության լայնությանը, հաշվի առնելով տարրի ներքին դաշտերն ու շրջանակները:


ՆկՂ 3. Հավասարեցման տարրեր FlexBox մոդելի մեջ

Եթե \u200b\u200bծնողական բլոկը պարունակում է տեքստ կամ պատկերներ առանց փաթաթաների, դրանք դառնում են անանուն Flex տարրեր: Տեքստը հավասարեցնում է բեռնարկղի բլոկի վերին եզրին, իսկ պատկերի բարձրությունը հավասար է բլոկի բարձրությանը, ես: Այն դեֆորմացված է:

3. Flex-Elements

Flex-Elements - Blocks, որոնք ներկայացնում են Flex բեռնարկղի բովանդակությունը հոսքում: Flex բեռնարկղը իր բովանդակության համար սահմանում է նոր ձեւաչափման համատեքստ, որն առաջացնում է հետեւյալ հատկանիշները.

  • Flex տարրերի համար ցուցադրման գույքի արժեքը արգելափակված է: Display ուցադրման արժեքը. Ներքին բլոկ; եւ ցուցադրում. սեղանի բջիջ; Display ուցադրմամբ հաշվարկված. Բլոկ; ,
  • Էլեմենտների միջեւ դատարկ տարածությունն անհետանում է. Այն չի դառնում իր Flex-Element- ը, նույնիսկ եթե միջմրեժի տեքստը փաթաթված է անանուն Flex տարրի մեջ: Անանուն Flex- ի բովանդակության համար անհնար է սահմանել սեփական ոճերը, բայց այն ժառանգելու է նրանց (օրինակ, տառատեսակի պարամետրերը) Flex բեռնարկղից:
  • Բացարձակապես տեղադրված Flex տարրը չի մասնակցում դասավորության դասավորությանը:
  • Մարժան դաշտերը հարակից Flex տարրերը փլուզված չեն:
  • Մարժան եւ լիցքաթափման տոկոսային արժեքները հաշվարկվում են դրանք պարունակող բլոկի ներքին չափից:
  • Լուսանցք. Ավտոմատ; Ընդարձակվում է, կլանելով լրացուցիչ տարածքը համապատասխան չափման մեջ: Դրանք կարող են օգտագործվել հարակից ֆլեքս տարրեր հավասարեցնելու կամ տարածելու համար:
  • Flex տարրերի ավտոմատ նվազագույն չափը լռելյայն իր բովանդակության նվազագույն չափն է, այսինքն, Min-Width: Auto; , Բեռնարկղերը պտտելու համար ավտոմատ նվազագույն չափը սովորաբար զրոյական է:

4. Flex-տարրեր եւ կողմնորոշում

Flex բեռնարկղի պարունակությունը կարող է քայքայվել ցանկացած ուղղությամբ եւ ցանկացած կարգով (բեռնարկղի ներսում ճկուն տարրերը վերադասավորելը ազդում է միայն տեսողական մատուցման):

4.1. Հիմնական առանցքի ուղղությունը. Flex-Formation

Գույքը պատկանում է Flex բեռնարկղին: Կառավարում է հիմնական առանցքի ուղղությունը, որի երկայնքով Flex տարրերը տեղադրված են, համաձայն ընթացիկ ձայնագրման ռեժիմին: Չի ժառանգվում:

flex- ուղղում:
Արժեքներ.
Տող Լռելյայն արժեքը ձախից աջ (RTL- ում աջ ձախ): Flex տարրերը դրված են տողի մեջ: Հիմնական առանցքի սկիզբը (հիմնական-սկիզբ) եւ վերջի (հիմնական) ուղղությունները համապատասխանում են սկզբին (INLINE-START) եւ INLINE AXIS- ի ավարտին (ներցանցային ավարտին):
Row-Reverse. Ուղղություն դեպի աջ ձախ (RTL- ում ձախից աջ): Flex-Elements- ը տողում դրված է բեռնարկղի աջ եզրին (RTL - ձախ):
սյուն: Ուղղություն վերեւից ներքեւ: Flex տարրերը դրված են սյունակում:
Սյուն-հակադարձ: Հակադարձ կարգով տարրերով սյունակ, ներքեւից վեր:
սկզբնական
ժառանգել:

ՆկՂ 4. Flex- ի ուղղությամբ `ձախ աջ լեզուների համար

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-Flex; -webkit-Flex-Direction: Row-Reverse; Display ուցադրել. Flex-Direction;)

4.2. Multi-Flex բեռնարկղի կառավարում. Flex-փաթեթ

Գույքը որոշում է, Flex բեռնարկղը կլինի մեկ տող կամ բազմամյա գիծ, \u200b\u200bինչպես նաեւ սահմանում է լայնակի առանցքի ուղղությունը, որը որոշում է նոր Flex բեռնարկղեր տեղադրելու ուղղությունը:

Լռելյայն, Flex Elements- ը տեղադրվում է հիմնական առանցքի երկայնքով մեկ տողով: Երբ արտահոսքի դեպքում նրանք դուրս կգան Flex բեռնարկղի սահմանային շրջանակից: Գույքը չի ժառանգվում:


ՆկՂ 5. Լեզուների համար Flex-Wrap- ի հատկությունները օգտագործելով բազմաբնույթ հոսքի կառավարում

Շարահյուսություն

Flex-Container (Display ուցադրել. -WebKIT-Flex; -webkit-Flex-փաթեթավորումը `փաթաթել; ցուցադրում, Flex-փաթեթավորում;)

4.3. Ուղղության եւ բազմապատկման ամփոփագիր. Flex-Flow

Գույքը թույլ է տալիս որոշել հիմնական եւ լայնակի առանցքների ուղղությունները, ինչպես նաեւ անհրաժեշտության դեպքում Flex տարրեր փոխանցելու հնարավորությունը: Դա Flex-Direction- ի եւ Flex- փաթաթման հատկությունների կրճատ ձայնագրություն է: Լռելյայն արժեքը Flex-Flow. Row Nowrap; , Գույքը չի ժառանգվում:

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-Flex; -webkit-Flex-Flow: Row փաթեթ; Display ուցադրել. Flex-Flow: Row փաթաթել;)

4.4. Flex Element Display կարգը. Պատվեր

Գույքը որոշում է այն կարգը, որով ցուցադրվում եւ տեղակայվում են Flex տարաների ներսում: Վերաբերում է ֆլեքս-տարրերին: Գույքը չի ժառանգվում:

Սկզբնապես, Flex- ի բոլոր տարրերը պատվեր են. 0; , Տարրագրի համար արժեքը նշելիս այն տեղափոխվում է ժամանակի սկիզբ, 1-ը `մինչեւ վերջ: Եթե \u200b\u200bFlex- ի մի քանի տարրեր ունեն նույն կարգի արժեքը, դրանք կցուցադրվեն սկզբնական պատվերի համաձայն:

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-Flex; ցուցադրում. Flex;) .Flex կետ (-webkit-Order: 1; 1;)
ՆկՂ 6. Flex- տարրերի ցուցադրման կարգը

5. Flex կուն flexible տարրեր

Flexible կուն դասավորության որոշիչ կողմը Flex-տարրերը «թեքելու» ունակությունն է, փոխելով դրանց լայնությունը / բարձրությունը (կախված է այն բանից, թե որ չափը հիմնական առանցքի վրա է) `հիմնական հարթության մեջ առկա տարածքը լրացնելու համար: Դա արվում է Flex գույքի միջոցով: Flex բեռնարկղը տարածում է ազատ տարածքը իր երեխայի տարրերի միջեւ (իրենց Flex- ի աճի գործակիցին համամասնորեն) `բեռնարկղը լրացնելու համար (Flex-Shrink գործակիցի համամասնությամբ):

Flex Element- ը լիովին «անսխալ» կլինի, եթե դրա ֆլեքս աճեցնող եւ ֆլեքս-նեղացման արժեքները զրոյական են, եւ «ճկուն» այլ կերպ:

5.1. Flexible կուն չափերի հավաքածու մեկ գույքով. Flex

Գույքը Flex-Grow-Grow- ի, Flex-Shrink- ի եւ Flex- ի հիմքի հատկությունների կրճատ գրառում է: Լռելյայն արժեք. Flex: 0 1 Auto; , Կարող եք նշել ինչպես մեկ, այնպես էլ բոլոր երեք հատկությունները: Գույքը չի ժառանգվում:

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-Flex; ցուցադրում. Flex;) .Flex կետ (-webkit-Flex: 3 1 100px;)

5.2. Աճի գործակից. Flex-Grow

Գույքը որոշում է Flex- ի մեկ Flex-Element- ի աճի գործակիցը Flex բեռնարկղում այլ Flex տարրերի համեմատ դրական ազատ տարածքի բաշխման ընթացքում: Եթե \u200b\u200bտողի ֆլեքս աճող ճկուն տարրերի արժեքների գումարը 1-ից պակաս է, նրանք գրավում են ազատ տարածքի 100% -ից պակաս: Գույքը չի ժառանգվում:


ՆկՂ 7. Ազատ տարածքի կառավարում նավիգացիոն վահանակում `օգտագործելով Flex-Grow

Շարահյուսություն

Flex-Container (Display ուցադրել. -WebKIT-Flex; ցուցադրում. Flex;) .Flex կետ (-webkit-Flex-Grow: 3;)

5.3. Սեղմման հարաբերակցությունը. Flex-Shrink

Գույքը ցույց է տալիս Flex տարրի սեղմման գործակիցը `համեմատած այլ Flex տարրերի հետ բացասական ազատ տարածքի բաշխման ընթացքում: Բազմապատկվում է Flex- ի հիմնական չափսով: Բացասական տարածքը համամասնորեն բաշխվում է այն ժամանակ, երբ տարրը կարող է սահուն լինել, հետեւաբար, մի փոքր Flex տարր չի նվազի մինչեւ զրոյական: Մեծ չափը, Գույքը չի ժառանգվում:


ՆկՂ 8. Լարի մեջ Flex տարրերի նեղացումը

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-flex; ցուցադրում. Flex;) .Flex կետ (-webkit-Flex-Shrink: 3;)

5.4. Հիմնական չափը `Flex- ի հիմքը

Գույքը սահմանում է Flex- ի տարրի սկզբնական հիմնական չափը նախքան Flexialialialialial- ի գործակիցներին համապատասխան: Բոլոր արժեքների համար, բացառությամբ ավտոմատների եւ բովանդակության, սահմանվում է հիմնական ճկուն չափը, ինչպես նաեւ հորիզոնական ձայնագրման ռեժիմներում լայնությունը: Տոկոսային արժեքները որոշվում են Flex բեռնարկղի չափի համեմատ, եւ եթե չափը նշված չէ, Flex- ի համար օգտագործվող արժեքը դրա բովանդակության չափն է: Չի ժառանգվում:

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-Flex; ցուցադրում. Flex;) .Flex կետ (-webkit-Flex-հիմք `100px;)

6. հավասարեցում

6.1. Գլխավոր առանցքի վրա հավասարեցում. Արդարացնել-բովանդակությունը

Գույքը հավասարեցնում է Flex-բեռնարկղի հիմնական առանցքի երկայնքով Flex- ի տարրերը, տարածելով ազատ տարածքը, Flex տարրերով անօգուտ: Երբ ապրանքը վերածվում է Flex բեռնարկղի, լռելյայն Flex տարրերը խմբավորված են միասին (եթե մարժայի դաշտը նշված չէ): Բացերը ավելացվում են լուսանցքի եւ ֆլեքս աճելու արժեքները հաշվարկելուց հետո: Եթե \u200b\u200bորեւէ տարր ունի Flex-Grow- ի կամ մարժայի ոչ զրոյական արժեք. Auto; Գույքը որեւէ ազդեցություն չի ունենա: Գույքը չի ժառանգվում:

Արժեքներ.
Flex-start. Լռելյայն արժեքը: Flex- տարրերը դրված են Flex բեռնարկղի սկզբնական գծից:
Flex-End. Flex-Elements- ը դրված է Flex բեռնարկղի վերջին գծից:
Կենտրոն Flex տարրերը հավասարեցված են Flex բեռնարկղի կենտրոնում:
Տարածություն-միջեւ: Flex տարրերը միատեսակ բաշխվում են գծի վրա: Առաջին Flex-Element- ը տեղադրվում է նախնական գծի եզրին, վերջին Flex- ի տարրը վերջնական գծի եզրին փչելը է, եւ գծի վրա մնացած Flex տարրերը բաշխվում են նույնը. Եթե \u200b\u200bմնացած ազատ տարածքը բացասաբար է կամ լարով կա միայն մեկ Flex տարր, այս արժեքը նույնական է Flex-Start պարամետրերի հետ:
Տարածություն: Տողերի վրա ֆլեքս-տարրերը բաշխվում են այնպես, որ երկու հարակից ճկուն տարրերի միջեւ հեռավորությունը նույնն է, եւ Flex տարաների առաջին / վերջին փաթեթի եզրերի միջեւ հեռավորությունը տատանվում էր Flex տարրերի միջեւ հեռավորության վրա:
սկզբնական Սահմանում է գույքային լռելյայն արժեքը:
ժառանգել: Ժառանգում է գույքի արժեքը ծնողական տարրից:

ՆկՂ 9. Արդար տարածության տարրերի եւ բաշխման հավասարեցում արդարացված բովանդակության հատկություններով

Շարահյուսություն

Flex-Container (Display ուցադրել. -Webkit-Flex; -webkit- արդարացնել-բովանդակությունը. Flex-start; ցուցադրում. Flex; Flex-start;)

6.2. Հավասարեցրեք լայնակի առանցքը. Align- իրեր եւ հավասարեցված

Flex տարրերը կարելի է համահունչ լինել Flex բեռնարկղի ընթացիկ տողի լայնակի առանցքին: Align- ի հավասարեցումը հավասարեցում է բոլոր Flex-բեռնարկղերի տարրերի համար, ներառյալ անանուն Flex տարրերը: Align- Segine- ը թույլ է տալիս շրջանցել այս հավասարեցումը անհատական \u200b\u200bFlex տարրերի համար: Եթե \u200b\u200bլայնակի լուսանցքի Flex Element- ը ավտոմատ է, հավասարեցված ինքնուրույն:

6.2.1. Հավասարեցնել իրերը:

Գույքը հավասարեցնում է Flex տարրերը, ներառյալ անանուն Flex տարրերը լայնակի առանցքի վրա: Չի ժառանգվում:

Արժեքներ.
Flex-start.
Flex-End.
Կենտրոն
Ելակետ Հավասարեցման մեջ ներգրավված բոլոր Flex տարրերի հիմնական տողերը համընկնում են:
Ձգվել:
սկզբնական Սահմանում է գույքային լռելյայն արժեքը:
ժառանգել: Ժառանգում է գույքի արժեքը ծնողական տարրից:
ՆկՂ 10. տարրերի հավասարեցում ուղղահայաց բեռնարկղում

Շարահյուսություն

Flex-Container (Display ուցադրել. -Webkit-Flex; -webkit-Align-նյութեր. Flex-start; ցուցադրում, Flex-start;)

6.2.2. Align-self

Գույքը պատասխանատու է Flex-բեռնարկղի բարձրության վրա առանձին Flex տարրի հավասարեցման համար: Գերակշռում է հավասարեցված իրերի կողմից նշված հավասարեցումը: Չի ժառանգվում:

Արժեքներ.
Ավտոմատ Լռելյայն արժեքը: Flex Element- ը օգտագործում է հավասարեցման կետում նշված Flex բեռնարկղի գույքում նշված հավասարեցումը:
Flex-start. Flex Elem- ի վերին եզրը սերտորեն տեղադրվում է Flex Line (կամ հեռավորության վրա, հաշվի առնելով նշված լուսանցքի դաշտերը եւ տարրի սահմանային շրջանակը) անցնելով լայնակի առանցքի սկզբում:
Flex-End. Flex տարրի ստորին եզրը սերտորեն տեղադրվում է Flex Line (կամ հեռավորության վրա, հաշվի առնելով նշված լուսանցքի դաշտերը եւ տարրի սահմանային շրջանակը) անցնելով լայնակի առանցքի ավարտը:
Կենտրոն Flex տարրերի դաշտերը կենտրոնացած են Flex Line- ի լայնակի առանցքի վրա:
Ելակետ Flex- ի տարրը հավասարեցված է ելակետին:
Ձգվել: Եթե \u200b\u200bFlex Element- ի լայնակի չափը հաշվարկվում է որպես ավտոմատ եւ մարժայի լայնակի արժեքներից ոչ մեկը հավասար չէ ավտոմատին, տարրը ձգվում է: Լռելյայն արժեքը:
սկզբնական Սահմանում է գույքային լռելյայն արժեքը:
ժառանգել: Ժառանգում է գույքի արժեքը ծնողական տարրից:

ՆկՂ 11. Անհատական \u200b\u200bFlex տարրերի հավասարեցում

Շարահյուսություն

Flex-Container (ցուցադրում. -Webkit-Flex; ցուցադրում. Flex;) .Flex կետ (-webkit-align-self: Center;)

6.3. FLEX բեռնարկղային գծեր. Align- բովանդակություն

Գույքը տողերը գծեր են տանում Flex բեռնարկղում, լայնակի առանցքի վրա լրացուցիչ տարածքի առկայության դեպքում, նմանապես հավասարեցնել Անհատական \u200b\u200bտարրեր Հիմնական առանցքի վրա `օգտագործելով արդարացված բովանդակության ունեցվածքը: Գույքը չի ազդում մեկ տող Flex բեռնարկղի վրա: Չի ժառանգվում:

Արժեքներ.
Flex-start. Թողերը պահվում են Flex բեռնարկղի սկզբում: Առաջին տողի եզրը տեղադրվում է Flex-Container- ի եզրին մոտ, յուրաքանչյուր հաջորդ, նախորդ գծին մոտ:
Flex-End. Տողերը դրվում են Flex բեռնարկղի ավարտին: Վերջին շարքի եզրը տեղադրվում է Flex-Container- ի եզրին, յուրաքանչյուր նախորդը `մոտ հաջորդ շարքին:
Կենտրոն Տողերը պահվում են Flex բեռնարկղի կենտրոնում: Շարքերը տեղակայված են միմյանց մոտ եւ համահունչ են Flex-բեռնարկղի կենտրոնում `Flex բեռնարկղի բովանդակության եւ Flex բեռնարկղի բովանդակության վերջնական եզրի միջեւ հավասար հեռավորության վրա հավասար հեռավորության վրա Վերջին տողը:
Տարածություն-միջեւ: Շարքերը միատեսակ բաշխվում են Flex բեռնարկղում: Եթե \u200b\u200bմնացած ազատ տարածքը բացասական է, կամ Flex բեռնարկղը ունի միայն մեկ Flex գիծ, \u200b\u200bայս արժեքը նույնական է Flex-Start- ի հետ: Հակառակ դեպքում, առաջին տողի եզրը տեղադրվում է Flex-բեռնարկղի բովանդակության սկզբնական եզրին, վերջին շարքի եզրը մոտ է Flex բեռնարկղի բովանդակության վերջնական եզրին: Մնացած գծերը բաշխվում են այնպես, որ երկու հարակից տողերի միջեւ հեռավորությունը նույնն է:
Տարածություն: Թողերը համաչափ բաշխվում են Flex բեռնարկղում `երկու ծայրերում կես տարածքով: Եթե \u200b\u200bմնացած ազատ տարածքը բացասական է, ապա այս արժեքը նույնական է կենտրոնի կենտրոնի հետ: Հակառակ դեպքում, տողերը բաշխվում են այնպես, որ երկու հարակից տողերի միջեւ հեռավորությունը նույնն է, եւ առաջին / վերջին տողերի միջեւ հեռավորությունը եւ Flex բեռնարկղի բովանդակության եզրերը տատանվում էին գծերի միջեւ:
Ձգվել: Լռելյայն արժեքը: Flex տարրերի շարքերը հավասարաչափ ձգվում են, լրացնելով առկա բոլոր տարածքը: Եթե \u200b\u200bմնացած ազատ տարածքը բացասական է, ապա այս արժեքը նույնական է Flex-Start- ի հետ: Հակառակ դեպքում, ազատ տարածքը հավասարապես բաժանվելու է բոլոր տողերի միջեւ, ավելացնելով դրանց լայնակի չափը:
սկզբնական Սահմանում է գույքային լռելյայն արժեքը:
ժառանգել: Ժառանգում է գույքի արժեքը ծնողական տարրից:
ՆկՂ 12. Flex տարրերի բազմաշերտ հավասարեցում

Շարահյուսություն

Flex-Container (Display ուցադրել. -Webkit-Flex; -webkit-Flex-Flow: ; Բարձրություն, 100px;)

FlexBox- ի դասավորության մոդուլը (ճկուն տուփ) ուղղված է ավելին, քան Արդյունավետ մեթոդ Բեռնարկղում գտնվող տարրերի միջեւ ազատ տարածության գտնվելու վայրը, հավասարեցում եւ բաշխում, նույնիսկ այն դեպքում, երբ դրանց չափը անհայտ է նախապես եւ (կամ) դինամիկ (հետեւաբար, «Flex» բառը:

Flexible կուն (FLEX) նշման հիմնական գաղափարը `իր տարրերի լայնությունը / բարձրությունը (կարգը) փոխելու ունակությամբ բեռնարկղ ապահովելը լավագույն միջոցը Լրացրեք առկա տարածքը (հիմնականում էկրանների բոլոր տեսակների եւ չափերի տեղադրման համար): FlexBox կոնտեյներ ընդլայնում է տարրերը `ազատ տարածությունը լրացնելու կամ դրանք սեղմելու համար` արտահոսքից խուսափելու համար:

Ամենակարեւորն այն է, որ FlexBox- ը ուղղորդված ագնոստիկ է, ի տարբերություն սովորական դասավորությունների (բլոկներ, հիմնվելով ուղղահայաց դիրքավորման եւ լարային դիրքի վրա): Չնայած այն հանգամանքին, որ նրանք աշխատում են լավ, նրանք չունեն ճկունություն աջակցելու մեծ կամ բարդ դիմումները (հատկապես, երբ խոսքը վերաբերում է փոփոխություններին կողմնորոշման, փոփոխության չափի, ձգվում, սեղմում, եւ այլն):

Նշում. FlexBox- ը ավելի հարմար է կիրառման բաղադրիչների եւ փոքր դասավորությունների համար, մինչդեռ CSS ցանցը նախատեսված է ավելի մեծ դասավորության համար:

Հիմունքներ եւ տերմինաբանություն

Քանի որ FlexBox- ը մի ամբողջ մոդուլ է, ոչ թե առանձին սեփականություն, այն պարունակում է շատ տարբեր իրեր, ներառյալ հատկությունների մի ամբողջ շարք: Նրանցից ոմանք նախագծված են իրենց բեռնարկղը տեղադրելու համար (ծնողական տարրը, որը հայտնի է որպես «Flex բեռնարկղ»), իսկ մյուսները պետք է տեղադրվեն երեխաների տարրերով (հայտնի է որպես «Flex Elements»):

Եթե \u200b\u200bսովորական դասավորության համակարգը հիմնված է բլոկի եւ լարային ուղղությունների վրա, FlexBox- ը հիմնված է «Flex- հոսքի ուղղությունների» վրա: Խնդրում ենք դիտել այս խաղարկությունը ճշգրտումից, որը բացատրում է FlexBox- ի հիմնական գաղափարը:

Հիմնականում տարրերը տեղակայված կլինեն երկայնքով Հիմնական առանցքը (հիմնական-սկզբից մինչեւ հիմնական) կամ Խաչ առանցք (խաչմերուկից մինչեւ խաչաձեւ):

Աջակցեք զննարկիչներին

CSS ճկուն տուփի դասավորության մոդուլ

Chrome Android- ի համար

10 տարբերակով սկսած զննարկիչ BlackBerry- ը աջակցում է նոր շարահյուսության:

Հատկություններ բեռնարկղի համար

Հատկություններ տարրերի համար

Հատկություններ ծնողի տարրի համար (Flex բեռնարկղ)

Ցուցադրել

Որոշում է Flex բեռնարկղը. Տողը կամ բլոկը կախված է փոխանցվող արժեքից: Ներառում է Flex համատեքստ `իր բոլոր ուղղակի, երեխաների տարրերի համար:

Բեռնարկղ (ցուցադրում. Flex; / * կամ Interline-Flex * /)

Խնդրում ենք նկատի ունենալ, որ CSS սյուները չեն ազդում Flex բեռնարկղի վրա:

flex- ուղղում:


Սահմանում է հիմնական առանցքը, այսպիսով որոշում է տարայի մեջ տեղակայված տարրերի ուղղությունը: FlexBox (բացի կամընտիր փաթաթվածից) միակողմանի դասավորության հայեցակարգ է: Մտածեք Flex-Elements- ի, հիմնականում որպես հորիզոնական գծեր կամ ուղղահայաց խոսնակներ:

Բեռնարկղ (Flex-Direction: Row | Row-Reverse | Սյունակ | Սյունակ-հակադարձ;)

  • row (լռելյայն) - ձախից աջ LTR; RTL- ում ձախից ձախ;
  • row-Reverse. - LT- ում ձախ, LTR; Ձախից աջ RTL;
  • սյուն: - Նույնը է, որ այդ շարքն է, միայն վերեւից ներքեւ;
  • Սյուն-հակադարձ: - Նույնը հակառակն է, միայն ներքեւից վերեւ;

Ֆլեքս փաթաթան


Լռելյայն, իրերը կփորձեն լրացնել միայն մեկ տող: Անհրաժեշտության դեպքում կարող եք փոխել այս պահվածքը եւ թույլ տալ, որ իրերը տեղափոխվեն հաջորդ տող:

Բեռնարկղ (Flex-փաթեթ: Nowrap | փաթաթել | փաթաթել;)

  • nowrap (լռելյայն) - Բոլոր Flex տարրերը տեղակայված կլինեն մեկ տողի վրա.
  • Պատել. - Flex տարրերը տեղակայվելու են մի քանի տողերի վրա, վերեւից ներքեւ;
  • Փաթաթել: - Flex տարրերը տեղակայված կլինեն մի քանի տողերի վրա, ներքեւից;

Արդարացնել-բովանդակությունը


Որոշում է հիմնական առանցքի երկայնքով հավասարեցումը: Այն օգնում է տարածել ազատ տարածքը, որը մնացել է բոլոր ֆիքսվածության ֆիքսվածության մեջ, Flex Elements- ը հասել է առավելագույն չափի: Այն նաեւ օգնում է որոշակի վերահսկողություն իրականացնել տարրերի հավասարեցման վրա, երբ դրանք լցնում են լարը:

Բեռնարկղ (արդարացնել բովանդակությունը. Flex-Start | Flex-End | Կենտրոն | Տիեզերք-միջեւ |

  • flex-Start (լռելյայն) - տարրերը սեղմվում են գծի սկզբում.
  • flex-End. - տարրերը սեղմվում են տողի վերջում.
  • Կենտրոն - տարրերը գտնվում են կենտրոնում լարային երկայնքով;
  • Տարածություն-միջեւ: - տարրերը հավասարաչափ տեղադրվում են գծի վրա. Առաջին տարրը գծի սկզբում է, Վերջին տարրը Գտնվում է գծի վերջում.
  • Տարածություն: - տարրերը հավասարաչափ տեղադրվում են իրենց կողքին գտնվող նույն տարածքի գծի վրա: Խնդրում ենք նկատի ունենալ, որ տեսողականորեն տարածքը նույնը չէ, քանի որ բոլոր տարրերը երկու կողմերում ունեն նույն տարածքը: Առաջին տարրը կունենա տարածքի մեկ միավոր, բեռնարկղից, բայց դրա եւ հաջորդ տարրի երկու միավոր, քանի որ հաջորդ տարրը նույնպես ունի մեկ միավոր երկու կողմերից:

Հավասարեցնել իրերը:


Այս գույքը որոշում է հոսանքի տողում լայնակի առանցքի երկայնքով Flex տարրերի պահվածքը: Մտածեք դրա մասին, ինչպես o, միայն լայնակի առանցքի համար (ուղղահայաց հիմնական առանցք):

Բեռնարկղ (հավասարեցման կետեր. Flex-start | Flex-End | Կենտրոն | Ելակետ | Ձգում;)

  • flex-Start - Տարրերը տեղադրվում են լայնակի առանցքի սկզբում.
  • flex-End - Տարրերը տեղադրվում են լայնակի առանցքի վերջում.
  • Կենտրոն - Տարրերը տեղակայված են լայնակի առանցքի կենտրոնում.
  • Ելակետ - տարրերը հավասարեցնում են ելակետը.
  • Ձգում (լռելյայն) - Ձգվում է ամբողջ բեռնարկղը լրացնելու համար (Min-Width / Max- լայնությունը դեռ նկատվում է).

Հավասարեցնել


Նշում. Այս գույքը չի գործում, երբ կա Flex տարրերի միայն մեկ տող:

Բեռնարկղ (համահունչ: Flex-Start | Flex-End | Կենտրոն | Տիեզերք-միջեւ |

  • flex-start. - շարքերը տեղակայված են բեռնարկղի սկզբում.
  • flex-End. - Գծերը տեղակայված են բեռնարկղի վերջում.
  • Կենտրոն - տողերը տեղադրվում են բեռնարկղի կենտրոնում.
  • Տարածություն-միջեւ: - շարքերը հավասարաչափ բաշխվում են, առաջին գիծը գտնվում է բեռնարկղի սկզբում եւ վերջում վերջին տողը.
  • Տարածություն: - շարքերը հավասարաչափ բաշխվում են Նույն հեռավորությունը նրանց միջեւ;
  • Ձգում (լռելյայն) - շարքերը ձգվում են լայնությամբ `մնացած տարածքը գրավելու համար.

Հատկություններ դուստր ձեռնարկությունների համար (Flex Elements)

պատվեր


Լռելյայն բոլոր տարրերը տեղակայված են բնօրինակ պատվերի մեջ: Այնուամենայնիվ, Պատվերի գույքը կառավարում է այն կարգը, որում տեղակայված են բեռնարկղի ներսում գտնվող տարրերը:

Նյութը (կարգը. ; }

flex-Grow.


Անհրաժեշտության դեպքում գույքը որոշում է չափի տարրը մեծացնելու ունակությունը: Այն տեւում է անիմաստ արժեք, որպես համամասնություն, որը որոշում է, թե ինչպես է բեռնարկղի ներսում ազատ տարածքի քանակը պետք է գրավի տարրը:

Եթե \u200b\u200bբոլոր տարրերը ունեն 1-ին տեղակայված Flex- աճող գույք, ապա բեռնարկղի ներսում անվճար տարածքը հավասարաչափ բաշխվի բոլոր տարրերի միջեւ: Եթե \u200b\u200bտարրերի արժեքը սահմանված է 2-ի, տարրը կլինի երկու անգամ ավելի շատ տեղ, քան մնացածը (գոնե փորձեք):

Նյութը (Flex-Grow: ; / * լռելյայն 0 * /)

Անհնար է բացասական թվեր նշել:

flex- հիմք:

Որոշում է լռելյայն տարրի չափը, նախքան մնացած տարածքի բաշխումը: Այն կարող է լինել երկարություն (20%, 5rem եւ այլն) կամ Հիմնաբառ, Ավտոմատ հիմնաբառ նշանակում է «նման լինել իմ լայնության կամ բարձրության ունեցվածքի»: Բովանդակության հիմնաբառը նշանակում է, որ «չափը հիմնված է տարրի բովանդակության վրա» հիմնաբառն այն է, որ դեռեւս լավ չի աջակցվում, ուստի դժվար է ստուգել, \u200b\u200bթե ինչն է դարձնում իր մին-բովանդակությունը, առավելագույնը Բովանդակություն եւ տեղավորումը:

Նյութը (Flex-հիմքը. | Ավտո; / * կանխադրված ավտոմատ * /)

Եթե \u200b\u200bսահմանված է 0-ին, ապա բովանդակության շուրջ լրացուցիչ տարածքը հաշվի չի առնվի: Եթե \u200b\u200bնա տեղադրում եք ավտոմատ, լրացուցիչ տարածքը կբաշխվի `հիմնվելով արժեքի վրա:

Ճամփորդել

Սա կրճատում է եւ: Երկրորդ եւ երրորդ պարամետրերը (Flex-Shrink- ը եւ Flex- ի հիմքը) պարտադիր չեն: Լռելյայն արժեքը սահմանված է 0 1-ի ավտոմատ:

Նյութ (FLEX: Ոչ մեկը | [<"flex-grow"> <"flex-shrink">? || <"flex-basis"> ] }

align-self


Այս գույքը հնարավորություն է տալիս գերակշռել լռելյայն հավասարեցումը (կամ նշված գույքը) անհատական \u200b\u200bFlex տարրերի համար:

Խնդրում ենք նայեք հատկությունների բացատրությանը `առկա արժեքները հասկանալու համար:

Նյութը (հավասարեցված ինքնություն. Auto | Flex-Start | Flex-End | Կենտրոն | ելակետային | ձգում | Flege-Flan | Exchann;)

Խնդրում ենք նկատի ունենալ, որ Float- ը, պարզ եւ ուղղահայաց-հավասարեցումը որեւէ ազդեցություն չունեն Flex Element- ի վրա:

Օրինակներ

Սկսենք Պարզ օրինակՈրոշիչ առաջադրանք, որը տեղի է ունենում գրեթե ամեն օր. Կատարյալ կենտրոնացում: Դա չի կարող ավելի հեշտ լինել, եթե օգտագործում եք FlexBox:

Ծնող (ցուցադրում. Flex; Բարձրություն, 300px;) .Խիլ (լայնություն, 100px; Բարձրություն, 100px;

Դա կախված է նրանից, որ Flex բեռնարկղում ավտոմեքենայում տեղադրված լուսանցքը կլանում է լրացուցիչ տարածություն: Այսպիսով, նյութի մեջ գտնվող ուղղահայաց լուսանցքի տեղադրումը կդարձնի իրենք կատարյալ կենտրոնացած երկու առանցքների վրա:

Հիմա եկեք օգտագործենք եւս մի քանի հատկություններ: Դիտարկենք 6 տարրերի ցանկը, բոլորը `ֆիքսված չափերով, գեղագիտական \u200b\u200bտերմիններով, բայց դրանք կարող են ավտոմատ լինել: Մենք ուզում ենք, որ դրանք հավասարաչափ բաժանվեն հորիզոնական առանցքի երկայնքով, այնպես որ զննարկչի չափը փոխելիս ամեն ինչ կարգին էր (առանց լրատվամիջոցների պահանջների):

Flex-Container (ցուցադրում. Flex; Flex-Flow: Row- ի փաթաթում; արդարացնել-բովանդակությունը, տարածություն;)

Պատրաստ Մնացած ամեն ինչ պարզապես նախագծման որոշ խնդիրներ են: Ստորեւ բերված է Codepen- ի օրինակ, համոզվեք, որ գնացեք այնտեղ եւ փորձեք փոխել պատուհանների չափը, տեսնելու, թե ինչ է տեղի ունենում:

Եկեք փորձենք որեւէ այլ բան: Պատկերացրեք, որ մենք ունենք նավարկություն, որը գտնվում է էկրանի վերեւում գտնվող աջ եզրին, բայց մենք ցանկանում ենք, որ այն գտնվում է կենտրոնում միջին չափի էկրանների վրա եւ փոքր էկրանների վրա գտնվում էր մեկ սյունակում: Նույնքան հեշտ, որքան կարկանդակ:

Նավիգացիա (ցուցադրում. Flex; Flex-Flow: Row- ի փաթաթում; արդարացնել-բովանդակությունը. Flex-End;) @Media Բոլորը եւ (արդարացնել-բովանդակություն)) @Media բոլոր եւ (առավելագույն լայնություն, 500px) (.NAVITION (FLEX- ուղղություն, սյուն)

Փորձենք նույնիսկ ավելի լավ բան անել, խաղալով մեր Flex տարրերի ճկունության հետ: Ինչ վերաբերում է գլխարկով եւ ներքեւ, գլխարկով եւ ներքեւ, էկրանի ամբողջ լայնության հետ, եւ որ տարրերի սկզբնական կարգից կախվածություն չկա:

Փաթեթավորող (ցուցադրում. Flex; Flex-Flow: Row- ի փաթաթում;). Ուղղակի, .main, .nav, .SaSide (Flex, (Flex: 1 Auto;)) @media Բոլորը եւ (Min-Width: 800px) (.main (FLEX: 2 0PX;) .Այն. 1;). (Պատվիրել. 3;) .Footer (Պատվեր, 4;))

Առնչվող հատկություններ

Սխալներ

Իհարկե, FlexBox- ը առանց սխալների չէ: Լավագույն հավաքածուն, որը ես տեսա, ներկայացնում է Ֆիլիպ Ուոլթոնը եւ Գրեգ Ուիթվորթը Flexbugs- ը: Սա բաց կոդով տեղ է, բոլոր սխալները հետեւելու համար, ուստի ես կարծում եմ, որ լավագույնը պարզապես թողնում է հղումը:

Պատվերի գույքը ղեկավարում է այն կարգը, որում երեխաների տարրերը հայտնվում են Flex բեռնարկղի ներսում: Լռելյայն, դրանք գտնվում են կարգի մեջ, ինչպես ի սկզբանե ավելացվում է Flex բեռնարկղին:

Արժեքներ

.flex- կետ (կարգ.<целое число>; }

flex Elements- ը կարող է վերադասավորվել `օգտագործելով այս պարզ գույքը, առանց HTML կոդը փոխելու:

Լռելյայն արժեք: 0.

flex-Grow.

Այս գույքը սահմանում է աճի գործակիցը, որը որոշում է, թե որքանով է Flex տարրը կբարձրանա Flex բեռնարկղում մնացած Flex տարրերի համեմատ, դրական ազատ տարածք տարածելիս:

Արժեքներ

.flex- կետ (Flex-Grow:<число>; }

Եթե \u200b\u200bբոլոր Flex- տարրերն ունեն նույն Flex- ի աճի արժեքը, բոլոր տարրերը կունենան նույն չափը բեռնարկղում:

Երկրորդ Flex Element- ը ավելի շատ տեղ է պահանջում Flex- ի այլ տարրերի չափի համեմատ:

Լռելյայն արժեք: 0.

flex-Shrink.

flex-Shrink- ը սահմանում է սեղմման գործակից, որը որոշում է, թե որքան հեռու է Flex տարրը սեղմվի Flex բեռնարկղում մնացած Flex տարրերի համեմատ, բացասական ազատ տարածության բաշխման ընթացքում:

Արժեքներ

.flex- կետ (Flex-Shrink:<число>; }

Լռելյայն, Flex- ի բոլոր տարրերը կարող են սեղմվել, բայց եթե մենք սահմանենք Flex-Shrink արժեքը զրոյական (առանց սեղմման), ապա տարրերը պահպանում են բնօրինակ չափը:

Լռելյայն արժեք: 1.

Բացասական թվերը անընդունելի են:

flex- հիմք:

Այս գույքը վերցնում է նույն իմաստները, ինչպիսիք են լայնությունը եւ բարձրության հատկությունները եւ սահմանում Flex Element- ի սկզբնական հիմնական չափը, նախքան ազատ տարածքը բաշխվում է գործակիցների համաձայն:

Արժեքներ

.flex- կետ (Flex-հիմք. Ավտոմատ |<ширина>; }

flex- ի հիմքը նշված է Flex Flex- ի չորրորդի համար եւ թելադրում է իր նախնական չափը:

Լռելյայն արժեք: Auto.

Ճամփորդել

Այս գույքը Flex-Grow- ի, Flex-Shrink- ի եւ Flex- ի հատկությունների կրճատում է: Այլ արժեքների բերքը կարող է տեղադրվել նաեւ ավտոմատ (1 1 ավտոմեքենա) եւ ոչ մեկը (0 0 ավտոմեքենա):

Արժեքներ

.flex-Item (Flex: No | Ավտոմեքենա | [ ? || ]; }

Լռելյայն արժեք: 0 1 ավտոմատ:

W3C- ն խորհուրդ է տալիս օգտագործել կրճատվող Flex- ի գույքը, անհատական \u200b\u200bհատկությունների փոխարեն, քանի որ Flex- ը ճիշտ է վերականգնում ցանկացած չճշտված բաղադրիչների բնորոշ օգտագործման համար:

align-self

Align- ի սեփականությունը թույլ է տալիս գերակշռել լռելյայն հավասարեցումը (կամ հավասարեցման կետերի միջոցով նշված արժեքը) անհատական \u200b\u200bFlex տարրերի համար: Առկա արժեքները հասկանալու համար դիմեք Flex բեռնարկղի հավասարեցման կետերի նկարագրությանը:

Արժեքներ

.flex կետ (Align- Self. Auto | Flex-Start | Flex-End | Կենտրոն | Ելակետ |

Երրորդ եւ չորրորդ Flex տարրերի համար հավասարեցումը շրջանցվում է հավասարեցված ինքնաբերության միջոցով:

Մոդալ FlexBox-Leuauta (Flexible կուն տուփ - «Flexible կուն բլոկ», որի վրա այս պահին W3C թեկնածուի առաջարկությունը) խնդիր է դնում առաջարկել բեռնարկղում տարրերի միջեւ անվճար տարածություն տեղադրելու, հավասարեցման եւ բաշխելու ավելի արդյունավետ միջոց, նույնիսկ այն դեպքում, երբ դրանց չափը անհայտ է եւ (կամ կամ դինամիկ):

Տեխնիկայի Flex-Guard- ի հիմնական գաղափարը օժտված է տարածության լավագույն լրացման համար իր տարրերի լայնությունը / բարձրությունը (եւ կարգը) կարողությամբ (շատ դեպքերում) ): Flex բեռնարկղը երկարացնում է տարրերը `ազատ տարածությունը լրացնելու կամ դրանք սեղմելու համար, կանխելու սահմանը:

Ամենակարեւորը, Flexbox-Leiut- ը կախված չէ այն ուղղությունից, ի տարբերություն սովորական տեճի (բլոկների, ուղղահայաց, իսկ ներքնազգեստի տարրերը հորիզոնական են): Թեեւ սովորական Leiut- ը հիանալի է վեբ էջերի համար, այն չունի ճկունություն (ոչ մի բանկա) `մեծ կամ բարդ դիմումներին աջակցելու համար (հատկապես, երբ խոսքը վերաբերում է էկրանին կողմնորոշմանը, չափափոխում, ձգում, սեղմում եւ այլն):

ՄեկնաբանությունFlexBox-Leuaout- ը լավագույնս հարմար է դիմումի եւ փոքրածավալ գործողությունների կոմպոզիտային մասերի համար, մինչդեռ ցանցն ավելի շատ օգտագործվում է Լաացիների համար:

Հիմունքներ

Որովհետեւ FlexBox- ը մի ամբողջ մոդուլ է, եւ ոչ միայն մեկ գույք, այն համատեղում է բազմաթիվ հատկություններ: Դրանցից մի քանիսը պետք է կիրառվեն բեռնարկղի վրա (ծնողական տարր, այսպես կոչված flex բեռնարկղ), իսկ մյուս հատկությունները վերաբերում են երեխաների տարրերին, կամ flex տարրեր.

Եթե \u200b\u200bսովորական Leuaout- ը հիմնված է բլոկի եւ ներկառուցված տարրերի ուղղությունների վրա, Flex-Liaut- ը հիմնված է «Flex-Flex- ի ուղղությունների» վրա: Ստուգեք այս սխեման ճշգրտումից, բացատրելով Flex-Leuaitov- ի հիմնական գաղափարը:

Տարրերի մեծ մասը կբաշխվի կամ միասին Հիմնական առանցքը (ից Հիմնական մեկնարկը: նախքան Հիմնական-վերջ:) կամ երկայնքով Լայն ուղեկցող առանցք (ից Սկսել: նախքան Խաչմերուկ:).

  • Հիմնական առանցք - Հիմնական առանցքը, որի կողքին գտնվում են Flex տարրերը: Նշում, դա պարտադիր չէ, որ հորիզոնական լինի, ամեն ինչ կախված է Flex-Direction- ի ունեցվածքից (տես ստորեւ):
  • Հիմնական մեկնարկը: | Հիմնական-վերջ: - Flex տարրերը տեղադրվում են բեռնարկղում հիմնական մեկնարկային դիրքից մինչեւ հիմնական դիրքը:
  • Հիմնական չափը: - Flex Damite- ի լայնությունը կամ բարձրությունը `կախված ընտրված հիմնական արժեքից: Հիմնական արժեքը կարող է լինել կամ լայնություն կամ տարրի բարձրություն:
  • Խաչ առանցք: - լայնակի առանցքը ուղղահայաց է հիմնականին: Դրա ուղղությունը կախված է հիմնական առանցքի ուղղությունից:
  • Սկսել: | Խաչմերուկ: - Flex տողերը լցված են տարրերով եւ տեղակայված են խաչմերուկի դիրքից մինչեւ խաչաձեւ դիրքի բեռնարկղում:
  • Խաչի չափը - Flex տարրի լայնությունը կամ բարձրությունը, կախված չափի չափից, հավասար է այս մեծության: Այս գույքը համընկնում է կետի լայնության կամ բարձրության հետ `կախված հարթության չափից:

Հատկություններ

display ուցադրում. Flex | Inline-flex;

Այն վերաբերում է.

Որոշում է Flex բեռնարկղը (ներկառուցված կամ բլոկը, կախված ընտրված արժեքից), կապում է Flex- ի համատեքստը իր անմիջական սերունդների համար:

Display ուցադրում. Այլ արժեքներ | Flex | Inline-flex;

Մտապահեք:

  • CSS սյուները չեն աշխատում Flex բեռնարկղով
  • float, պարզ եւ ուղղահայաց-հավասարեցումը չեն աշխատում Flex տարրերի հետ

flex- ուղղում:

Այն վերաբերում է. Ծնողների տարրերի ֆլեքս-բեռնարկղ:

Սահմանում է հիմնական առանցքի հիմնական առանցքը, դրանով իսկ որոշելով բեռնարկղում տեղադրված Flex տարրերի ուղղությունը:

Flex-Direction: Row | Row-Reverse | Սյուն | Սյուն-հակադարձ:
  • row (լռելյայն). Ձախից աջ ԼՏՏ-ի համար աջ, RTL- ի համար ձախ;
  • row-Reverse. Right ձախ, LTR- ի համար, ձախից աջ RTL;
  • Սյունակ, տողի նման, վերեւից ներքեւ;
  • Սյունակ-հակադարձ. Նման է տողի հակառակ, ներքեւի մասի:

Ֆլեքս փաթաթան

Այն վերաբերում է. Ծնողների տարրերի ֆլեքս-բեռնարկղ:

Որոշում է, թե արդյոք բեռնարկղը կլինի մեկ տող կամ բազմաֆունկցիոնալ, ինչպես նաեւ լայնակի առանցքի ուղղությունը, որը որոշելու է նոր տողերը:

Flex-փաթեթավորում. Nowrap | Փաթաթել | Փաթաթել:
  • nowrap (լռելյայն). Միայնակ / ձախից աջ LTR- ի համար աջ, RTL- ի համար ձախ;
  • Փաթեթավորեք. Բազմաֆունկցիոնալ / ձախից աջ ԼՏՏ-ի համար, RTL- ի ձախ կողմում.
  • Փաթեթավորող. Բազմաֆունկցիոնալ / աջ մնացել է LTR- ի համար, ձախից աջ RTL:

flex-հոսք:

Այն վերաբերում է. Ծնողների տարրերի ֆլեքս-բեռնարկղ:

Սա Flex-Flex- ի եւ Flex-S փաթեթների հատկությունների կրճատում է, որոնք միասին սահմանում են հիմնական եւ լայնակի առանցքը: Լռելյայն վերցնում է Nowrap տողի արժեքը:

Flex-հոսք.<"flex-direction" > || <"flex-wrap" >

Այն վերաբերում է. Ծնողների տարրերի ֆլեքս-բեռնարկղ:

Որոշում է հավասարեցման հավասարեցումը հիմնական առանցքի հետ: Օգնում է տարածել մնացած ազատ տարածքը այն դեպքում, երբ գծի տարրերը «ձգվում են» կամ ձգվում են, բայց արդեն հասել են դրա առավելագույն չափի: Նաեւ թույլ է տալիս որոշակի ձեւով վերահսկել տարրերի հավասարեցումը, երբ լարը թողարկվի:

Flex-Start | Flex-End | Կենտրոն | Տարածություն | Տարածություն:
  • flex-Start. Elements- ը տեղափոխվում է գծի սկզբում.
  • flex-End. Elements- ը տեղափոխվում է տողի ավարտով.
  • Կենտրոն. Տարրերը հավասարեցված են գծի կենտրոնում.
  • Տիեզերք. Տարրերը հավասարաչափ բաշխվում են հավասարաչափ (գծի սկզբում առաջին տարրը, վերջինը `վերջում);
  • Տիեզերք. Տարրերը հավասարաչափ բաշխվում են հավասար հեռավորության վրա իրենց եւ տողի սահմանների միջեւ:

Այն վերաբերում է. Ծնողների տարրերի ֆլեքս-բեռնարկղ:

Սահմանում է Flex տարրերի համար լռելյայն պահվածքը `կապված ընթացիկ գծի լայնակի առանցքի հետ: Հաշվի առեք արդարացված բովանդակության այս տարբերակը լայնակի առանցքի համար (հիմնական ուղղահայաց):

Flex-Start | Flex-End | Կենտրոն | Ելակետային | Ձգվել:
  • flex-Start. Նյութերի խաչմերուկի սահմանը գտնվում է խաչմերուկի դիրքում.
  • flex-End. Նյութերի համար խաչաձեւ սահմանը գտնվում է խաչաձեւ դիրքի վրա.
  • Կենտրոն. Տարրերը հավասարեցված են լայնակի առանցքի կենտրոնում.
  • Ելակետ. Տարրերը հավասարեցված են իրենց ելակետին.
  • Ձգում (լռելյայն). Տարրերը ձգվում են, լցնում բեռնարկղը (հաշվի առնելով նվազագույն / առավելագույն լայնությունը):

Այն վերաբերում է. Ծնողների տարրերի ֆլեքս-բեռնարկղ:

Հանդիպում է Flex բեռնարկղային գծերը լայնակի առանցքի վրա ազատ տարածքի առկայության դեպքում, այնպես, ինչպես արդարացված բովանդակությունը կատարում է հիմնական առանցքի վրա:

Մեկնաբանություն: Այս գույքը չի գործում մեկ տող ֆլեքսիով:

Flex-Start | Flex-End | Կենտրոն | Տարածություն | Տարածություն-շուրջ | Ձգվել:
  • flex-Start. Գծերը հավասարեցված են կոնտեյների մեկնարկի համեմատ;
  • flex-End. Գիծները հավասարեցված են կոնտեյների ավարտի համեմատ;
  • Կենտրոն. Տողերը համահունչ են բեռնարկղի կենտրոնում.
  • Տիեզերք. Գիծները հավասարաչափ բաշխվում են (գծի սկզբում առաջին տողը, վերջինս վերջում է);
  • space-Round: Գիծները հավասարաչափ բաշխվում են հավասար հեռավորության վրա.
  • Ձգում (լռելյայն). Թողերը ձգվում են, լրացնելով ազատ տարածքը:

պատվեր

Այն վերաբերում է.

Լռելյայն, Flex Elements- ը տեղակայված է իր սկզբնական կարգով: Այնուամենայնիվ, պատվերի գույքը կարող է վերահսկել իրենց գտնվելու վայրի կարգը բեռնարկղում:

Պատվեր:<Թանձր

flex-Grow.

Այն վերաբերում է. Դուստրերի տարր / Flex տարր:

Flex- ի տարրը որոշում է անհրաժեշտության դեպքում «աճելու» ունակությունը: Վերցնում է ինդեքսավորված արժեք, որը ծառայում է որպես համամասն: Դա որոշում է բեռնարկղի ներսում ազատ տարածքի մի մասը կարող է զբաղեցնել տարրը:

Եթե \u200b\u200bբոլոր իրերը ունեն Flex- աճող գույք, որպես 1, ապա յուրաքանչյուր սերունդ կստանա նույն չափը բեռնարկղի ներսում: Եթե \u200b\u200bդուք դրեք սերունդներից 2-ը, ապա դա կտեւի երկու անգամ ավելի շատ տեղ, քան մյուսները:

Flex-Grow:<Թիվ\u003e (Լռելյայն 0)

flex-Shrink.

Այն վերաբերում է. Դուստրերի տարր / Flex տարր:

FLEX- ի տարրը որոշում է անհրաժեշտության դեպքում սեղմելու հնարավորություն:

Flex-Shrink: (Լռելյայն 1)

Բացասական թվերը չեն ընդունվում:

flex- հիմք:

Այն վերաբերում է. Դուստրերի տարր / Flex տարր:

Որոշում է տարրի համար լռելյայն չափը նախքան բեռնարկղում տարածքի բաշխումը:

Flex- հիմք.<Երկարություն\u003e | Auto (Default Auto)

Ճամփորդել

Այն վերաբերում է. Դուստրերի տարր / Flex տարր:

Սա Flex-Grow- ի, Flex-Shrink- ի եւ Flex- ի կրճատումն է: Երկրորդ եւ երրորդ պարամետրերը (Flex-Shrink- ը, Flex-Habin- ը) ընտրովի են: Լռելյայն արժեքը 0 1 ավտոմեքենա է:

FLEX: Ոչ մեկը | [<"flex-grow" > <"flex-shrink" >? || <"flex-basis" > ]

align-self

Այն վերաբերում է. Դուստրերի տարր / Flex տարր:

Թույլ է տալիս շրջանցել լռելյայն հավասարեցումը կամ հավասարեցված իրերը, անհատական \u200b\u200bFlex տարրերի համար:

Տես ALIGN- ի գույքի նկարագրությանը `առկա արժեքների ավելի լավ պատկերացումների համար:

ALIGN-SEND: AUTO | Flex-Start | Flex-End | Կենտրոն | Ելակետային | Ձգվել:

Օրինակներ

Սկսենք շատ, շատ պարզ օրինակից, տեղի ունեցած գրեթե ամեն օր. Հավասարաչափ հենց կենտրոնում: Flexbox- ի օգտագործմամբ ավելի հեշտ բան չկա:

.Պարուն (ցուցադրում. Flex; բարձրությունը `300px; / * Կամ որեւէ բան * / ) .Չիլդ (լայնություն, 100px; / * Կամ որեւէ բան * / Բարձրություն, 100px; / * Կամ որեւէ բան * / Լուսանցք. Ավտոմատ; / * Magic! * /)

Այս օրինակը հիմնված է այն փաստի վրա, որ Flex բեռնարկղում գտնվող լուսանցքը, որը նշված է Auto- ն, կլանում է ավելորդ տարածքը, ուստի հղման խնդիրն այսպիսով գծ է տալիս երկու առանցքների կենտրոնում:

Հիմա եկեք օգտագործենք որոշ հատկություններ: Ներկայացրեք 6 ֆիքսված չափի տարրերի մի շարք (գեղեցկության համար), բայց բեռնարկղի չափը փոխելու ունակությամբ: Մենք ուզում ենք հավասարաչափ տարածել դրանք հորիզոնական, որպեսզի դիտարկիչի պատուհանը չափափոխվի, ամեն ինչ լավ տեսք ուներ (առանց @ Media-Recorder!):

.flex- կոնտեյներ ( / * Նախ ստեղծեք Flex-Context * / Display ուցադրում. Flex; / * Այժմ մենք կսահմանենք հոսքի ուղղությունը եւ ուզում ենք, որ տարրերը փոխանցվեն նոր լարին * Հիշեք, որ սա նույնն է, * Flex-Direction: Row; * Flex-փաթեթավորում. Փաթաթել; * / Flex-Flow: Row փաթեթավորում; / * Այժմ մենք սահմանում ենք, թե ինչպես է տարածությունը * / : Տարածություն; )

Պատրաստ: Մնացած ամեն ինչ գրանցման հարց է: Ստորեւ ներկայացված է Codepen, որը ցույց է տալիս այս օրինակը: Համոզվեք, որ փորձեք ձգվել / քամել զննարկչի պատուհանը եւ տեսնել, թե ինչ է տեղի ունենում:

Ստուգեք այս գրիչը:

Եկեք փորձենք որեւէ այլ բան: Պատկերացրեք, որ մեզ անհրաժեշտ է նավարկություն, որը հավասարեցված է աջ եզրին մեր կայքի հենց վերեւում, բայց մենք ուզում ենք, որ այն հավասարեցնի կենտրոնում միջին հաշվով էկրաններին եւ վերածվի փոքրիկի մեկ սյունակի: Ամեն ինչ բավականաչափ պարզ է:

/ * Մեծ էկրաններ * / .Navigation (ցուցադրում. Flex; Flex-Flow: Row փաթաթան; / * Տեղափոխում է տարրերը գծի ավարտին հիմնական առանցքի վրա * / Flex-End; ) @Media Բոլորը եւ (առավելագույն լայնությունը `800px) (.navigation ( / * Միջին չափի էկրանների համար մենք կենտրոնում ենք նավարկումը կենտրոնում, հավասարաչափ տարածելով տարրերի միջեւ անվճար տարածքը * / : Տարածություն; )) / * Փոքր էկրաններ * / @Media All and (առավելագույն լայնություն, 500px) (.navigation ( / * Փոքր էկրանների վրա մի տողի փոխարեն մենք ունենք տարրեր սյունակում * / Flex-Direction: սյուն; )) Ստուգեք այս գրիչը:

Եկեք ավելի լավ բան փորձենք եւ խաղանք Flex-Elements- ի ճկունությամբ: Ինչպես կողմնորոշված Բջջային սարքեր Երեք շեշտադրման դասավորություն `ամբողջական գլխարկով եւ նկուղով: Եւ գտնվելու վայրի հերթական կարգը:

.Wrapper (ցուցադրում. Flex; Flex-Flow: Row Wrap;) / * Մենք նշում ենք 100% լայնության բոլոր տարրերը * / .Ader, .main, .nav, .aside, .foot (FLEX: 1 100%;) / * Այս դեպքում մենք ապավինում ենք կողմնորոշման սկզբնական կարգին * Բջջային սարքերի վրա. * 1. Վերնագիր * 2. Նավ * 3. Մի կողմ * 5. / * Միջին չափի էկրաններ * / @Media All and (Min-Width: 600px) ( / * Երկուսն էլ Sagebar գտնվում են մեկ տողում * / .aside (FLEX: 1 Auto;)) / * Մեծ էկրաններ * / @Media All and (Min-Width: 800px) ( / * Մենք փոխում ենք տեղերը տարրերը: Arement-1 I.main- ը, ինչպես նաեւ տեղեկացնում են * տարրը երկու անգամ ավելի շատ տեղ է զբաղեցնում, քան Sidbars- ը: * / . Մայն (Flex: 2 0px;) .Առաջին 1 (Պատվիրել. 1;). Մայն (Պատվիրել, 2;). Fooder (կարգը, 4;))

Եթե \u200b\u200bկարճ եք ասում, ապա Flexbox- ի դասավորությունը մեզ տալիս է մեկ անգամ դժվար առաջադրանքների պարզ լուծումներ: Օրինակ, երբ անհրաժեշտ է հավասարեցնել ուղղահայաց տարրը կամ սեղմել նկուղը էկրանի ներքեւի մասում կամ պարզապես մի քանի բլոկ տեղադրել մեկ շարքի մեջ, որպեսզի նրանք զբաղվեն ամեն ինչ ազատ տարածության մեջ: Նման առաջադրանքները լուծվում են առանց FLEX- ի: Բայց, որպես կանոն, այս լուծումները ավելի շատ նման են «հենակներին». CSS օգտագործելու ընդունելությունները չեն նախատեսվում: Մինչդեռ Flexbox- ի հետ նման առաջադրանքները լուծվում են այնպես, ինչպես կարծում են FLEX մոդելը:

CSS Flexible կուն տուփի դասավորության մոդուլ (CSS մոդուլների մոդուլների համար ճկուն բլոկներով), կարճ FlexBox, որը ստեղծվել է տարբեր HTML կառուցվածքներ ստեղծելիս, ներառյալ տարբեր լայնությունների եւ բարձրության վրա հարմարեցված: Եվ տրամաբանական մոտեցումը, որպես կանոն, աշխատում է անսպասելի վայրերում, որտեղ արդյունքը չի ստուգվել `մեր տրամաբանությունը:

FlexBox- ը թույլ է տալիս նրբագեղորեն վերահսկել տարրերի ամենատարածված պարամետրերը բեռնարկղի ներսում. Ուղղություն, կարգ, լայնություն, բարձրություն, հավասարեցում, ազատ տարածության, ձգման եւ սեղմման բաշխում:

Հիմնական գիտելիք

FlexBox- ը բաղկացած է բեռնարկղից եւ նրա երեխաների տարրերից (իրերից) (ճկուն տարրեր):

Ներառել FlexBox, ցանկացած HTML տարր Բավական է CSS գույքի ցուցադրում նշանակելու համար. FLEX; կամ ցուցադրում. inline-flex; ,

1
2

Flex- ի հատկությունները միացնելուց հետո բեռնարկղի ներսում ստեղծվում են երկու առանցք, հիմնական եւ լայնակի (ուղղահայաց (⊥), խաչ առանցք): Հիմնական առանցքի վրա կառուցված են բոլոր բույնի տարրերը (առաջին մակարդակը): Լռելյայն, հիմնական առանցքը հորիզոնական է եւ ունի ուղղություն ձախից աջ (→), եւ խաչի առանցքը, համապատասխանաբար, ուղղահայաց (↓):

Հիմնական եւ խաչ առանցքը կարող են փոփոխվել տեղերում, ապա տարրերը տեղակայվելու են վերեւում (↓) եւ երբ նրանք դադարում են տեղավորվել բարձրության վրա (→) - այսինքն, առանցքների տեղերում , Միեւնույն ժամանակ, տարրերի գտնվելու վայրի սկիզբը եւ ավարտը չի փոխվում. Միայն ուղղություններ (առանցք) փոխվում են: Ահա թե ինչու պետք է պատկերացնել առանցքը բեռնարկղի ներսում: Այնուամենայնիվ, անհրաժեշտ չէ մտածել, որ այնտեղ կան մի քանի «ֆիզիկական» առանցքներ, եւ նրանք ինչ-որ բանի վրա են ազդում: Այստեղ առանցքը միայն տարայի ներսում տարրերի շարժման ուղղությունն է: Օրինակ, եթե մենք նշեցինք հիմնական առանցքի կենտրոնում տարրերի հավասարեցումը, այնուհետեւ փոխեց այս հիմնական առանցքի ուղղությունը, այն կփոխվի եւ հավասարեցնի. Մանրամասները միջին հորիզոնականում էին. . Տես օրինակ:

FLEX տուփի մեկ այլ կարեւոր առանձնահատկություն է տողի առկայությունը լայնակի ուղղությամբ: Հասկանալու համար, թե ինչի մասին ենք խոսում, պատկերացնենք, որ կա հիմնական հորիզոնական առանցք, շատ տարրեր, եւ դրանք «բարձրանում են» բեռնարկղի մեջ, ուստի նրանք գնում են այլ շարքի: Նրանք: Բեռնարկղը այսպիսին է. Բեռնարկղը, դրա ներսում, երկու շարքեր, յուրաքանչյուր շարքում `մի քանի տարրերի համար: Ներկայացվեց: Հիմա հիշեք, որ մենք կարող ենք ուղղահայաց հավասարեցնել ոչ միայն տարրերը, այլեւ շարունակել: Ինչպես է այն լավ երեւում գույքի օրինակով: Եվ այսպես, դա կարծես սխեմատիկ է.

CSS հատկություններՈրը կարող է ազդել դասավորության շինարարության մոդելի վրա. Գունավոր, պարզ, ուղղահայաց-հավասարեցման, սյուները չեն աշխատում Flex Design- ում: Այն օգտագործում է մեկ այլ մոդել, դասավորությունը կառուցելու համար, եւ այս CSS հատկությունները պարզապես անտեսվում են:

CSS հատկությունների FlexBox

FlexBox- ը պարունակում է տարբեր CSS կանոններ, Flex- ի ամբողջ դիզայնը վերահսկելու համար: Ոմանք պետք է կիրառվեն հիմնական բեռնարկղի վրա, իսկ մյուսները այս բեռնարկղի տարրերին:

Բեռնարկղի համար

Ցուցադրում.

Ներառում է Flex գույքը իրի համար: Այս գույքի տակ դրա մեջ ներդրված տարրը տուժում է միայն առաջին մակարդակի սերունդները. Դրանք կդառնան բեռնարկղի ֆլեքսի տարրեր:

  • Ճամփորդել - Տարրը ձգվում է ամբողջ լայնությամբ եւ ունի իր ամբողջ տարածքը շրջակա բլոկների մեջ: Թշնամուն տեղի է ունենում բլոկի սկզբում եւ վերջում:
  • Ներածություն-ֆլեքս - Տարրը պարզվում է այլ տարրերի կողմից: Այս դեպքում նրա ներքին մասը ձեւաչափվում է որպես բլոկային տարր, եւ տարրն ինքնին ներկառուցված է:

flex եւ inline-flex Տարբերվում է այն փաստը, որ տարբեր կերպ շփվում է շրջակա տարրերի հետ, ինչպես ցուցադրումը. Բլոկ եւ ցուցադրում. Ներքին բլոկ:

Flex-Direction:

Փոխում է բեռնարկղի հիմնական առանցքի ուղղությունը: Լայնակի առանցքը փոխվում է համապատասխանաբար:

  • row (լռելյայն) - տարրերի ուղղություն ձախից աջ (→)
  • սյուն: - տարրերի ուղղություն վերեւից ներքեւ (↓)
  • row-Reverse. - ուղղություն տարրերի աջ ձախ կողմում (←)
  • Սյուն-հակադարձ: - տարրերի ուղղություն ներքեւից վերեւ ()
Flex-փաթեթավորում.

Կառավարում է տարրերի փոխանցումը բեռնարկղին:

  • nowrap (լռելյայն) - Տեղակայված տարրերը տեղակայված են մեկ շարքում (ուղղության \u003d շարքի ընթացքում) կամ մեկ սյունակում (ուղղությամբ \u003d սյունակ), անկախ նրանից, թե դրանք տեղադրվում են բեռնարկղում, թե ոչ:
  • Պատել. - Ներառում է իրերի փոխանցումը հաջորդ շարքին, եթե դրանք տեղադրված չեն բեռնարկղի մեջ: Սա ներառում է միջքաղաքային առանցքի տարրերի տեղաշարժը:
  • Փաթաթել: - Նաեւ այն, որ միայն փոխանցումը փաթաթելը չի \u200b\u200bլինի, եւ վեր կսկսվի (հակառակ ուղղությամբ):
Flex-Flow. Ուղղության փաթաթում

Համատեղում է ինչպես Flex-Direction- ը, այնպես էլ Flex-Wrap- ի հատկությունները: Դրանք հաճախ օգտագործվում են միասին, այնպես որ Flex-Flow գույքը ստեղծվել է ավելի քիչ կոդ գրելու համար:

flex-Flow- ը ընդունում է երկու հատկությունների արժեքները, առանձնացված տարածքով: Կամ կարող եք նշել ցանկացած գույքի մեկ արժեք:

/ * Միայն Flex-Direction * / Flex-Flow: Row; Flex-Flow: Row-Reverse; Flex-Flow: սյուն; Flex-Flow: սյունակ-հակադարձ; / * Միայն Flex-փաթեթ * / Flex-հոսք. Nowrap; Flex-Flow: փաթաթված; Flex-Flow: փաթաթել. / * Անմիջապես ինչպես իմաստներ, Flex-Direction եւ Flex-փաթեթ * / Flex-Flow: Row Nowrap; Flex-Flow. Սյունակի փաթեթավորում; Flex-Flow. Սյունակ-հակառակ փաթաթան-հակադարձ; Արդարացնել-բովանդակությունը.

Հավասարեցրեք տարրերը հիմնական առանցքի վրա. Եթե ուղղություն \u003d տող, ապա հորիզոնական, եւ եթե ուղղություն \u003d սյունակ, ապա ուղղահայաց:

  • flex-Start (լռելյայն) - տարրերը կգնան սկզբից (վերջում կարող է տեղ լինել):
  • flex-End. - տարրերը հավասարվում են մինչեւ վերջ (տեղը կմնա սկզբում)
  • Կենտրոն - Կենտրոնում (տեղը կմնա ձախ եւ աջ)
  • Տարածություն-միջեւ: - Ծայրահեղ տարրերը սեղմվում են եզրերին (տարրերի միջեւ ընկած տեղը հավասարաչափ բաշխվում է)
  • Տարածություն: - Ազատ տարածքը հավասարաչափ բաշխվում է տարրերի միջեւ (ծայրահեղ տարրերը սեղմվում են եզրերի վրա): Բեռնարկղի եզրագծի եւ ծայրահեղ տարրերի միջեւ տարածությունը կլինի երկու անգամ պակաս, քան տողի կեսին տարրերի միջեւ տարածությունը:
  • Տիեզերք-հավասարաչափ
Համարնունդ-բովանդակություն.

Հավասարեցնում է այն շարքերը, որոնցում գտնվում են լայնակի առանցքի տարրերը: Նույնը, ինչ արդարացնել-բովանդակությունը միայն հակառակ առանցքի համար:

Նշում. Աշխատում է, երբ կա առնվազն 2 տող, այսինքն: Եթե \u200b\u200bընդամենը 1 տող կա, ոչինչ չի պատահում:

Նրանք: Եթե \u200b\u200bFlex-Direction. Row, այս գույքը կվերածվի անտեսանելի տողերը ուղղահայաց |. Կարեւոր է նշել, որ բլոկի բարձրացումը պետք է խստորեն սահմանվի եւ պետք է լինի ավելի մեծ, քան շարքի բարձրությունը, հակառակ դեպքում իրենք կթողնեն նրա իմաստը, քանի որ նրանց միջեւ ազատ տեղ չկա: . Բայց երբ Flex-Direction. Սյունակ, այնուհետեւ տողերը շարժվում են հորիզոնական → եւ բեռնարկղի լայնությունը գրեթե միշտ ավելի մեծ է, քան շարքի լայնությունը եւ շարքերն անմիջապես ձեռք են բերում ...

  • Ձգում (լռելյայն) - շարքերը ձգվում են ամբողջությամբ լցնելով լարը
  • flex-start. - Տողերը խմբավորված են բեռնարկղի վերեւում (վերջում կարող է տեղ լինել):
  • flex-End. - շարքերը խմբավորված են բեռնարկղի ներքեւի մասում (տեղը կմնա սկզբում)
  • Կենտրոն - տողերը խմբավորված են բեռնարկղի կենտրոնում (տեղը կմնա եզրերի վրա)
  • Տարածություն-միջեւ: - Ծայրահեղ շարքերը սեղմվում են դեպի եզրերը (տողերի միջեւ ընկած տեղը հավասարաչափ բաշխվում է)
  • Տարածություն: - Ազատ տարածքը հավասարաչափ բաշխվում է տողերի միջեւ (ծայրահեղ տարրերը չեն սեղմվում եզրերի նկատմամբ): Բեռնարկղի եզրագծի եւ ծայրահեղ տարրերի միջեւ տարածությունը կլինի երկու անգամ պակաս, քան տողի կեսին տարրերի միջեւ տարածությունը:
  • Տիեզերք-հավասարաչափ - Նաեւ այդ տարածքը, միայն բեռնարկղի ծայրերի ծայրահեղ տարրերի հեռավորությունը նույնն է, ինչ տարրերի միջեւ:
Հավասարեցումներ.

Հավասարեցրեք տարրերը տողի ներսում լայնակի առանցքի վրա (անտեսանելի գիծ): Նրանք: Տողերը իրենք հավասարեցված են համահունչ բովանդակության միջոցով, եւ այս տողերի շրջանակներում (տողերը) հավասարեցման միջոցով եւ այս ամենը լայնակի առանցքի միջոցով: Հիմնական առանցքից չկա այդպիսի տարանջատում, շարքի եւ տարրերի հասկացություններ չեն համապատասխանում արդարացված բովանդակության միջոցով:

  • Ձգում (լռելյայն) - տարրերը ձգվում են ամբողջությամբ լցնելով լարը
  • flex-start. - տարրերը սեղմվում են շարքի սկզբում
  • flex-End. - տարրերը ճնշվում են տողի վերջի դեմ
  • Կենտրոն - տարրերը հավասարեցնում են շարքի կենտրոնում
  • Ելակետ - տարրերը հավասարեցնում են ելակետային տեքստը

Բեռնարկղային տարրերի համար

Flex-Grow:

Նշում է տարայի աճող գործոնը բեռնարկղում ազատ տարածության առկայության մեջ: Լռելյայն Flex-Grow: 0 I.E. Elements- ից ոչ մեկը չպետք է ավելանա եւ լրացնի անվճար տարածքը բեռնարկղում:

Լռելյայն Flex-Grow: 0

  • Եթե \u200b\u200bբոլոր տարրերը նշում են Flex-Grow: 1, ապա բոլորը հավասարապես ձգվում են եւ ամեն ինչ ազատ տեղ են լցնում բեռնարկղում:
  • Եթե \u200b\u200bտարրերից մեկը ցույց է տալիս Flex-Grow: 1, ապա այն կլրացնի բոլոր ազատ տարածքը բեռնարկղում եւ հավասարեցման միջոցով արդարացված բովանդակության աշխատանքը չի կարողանա աշխատել.
  • Երբ Flex-Grow: 1. Եթե \u200b\u200bդրանցից մեկը ունի Flex-Grow: 2, այն կլինի 2 անգամ ավելին, քան բոլորը
  • Եթե \u200b\u200bFlex բեռնարկղի ներսում գտնվող Flex բլոկները ունեն Flex-Grow: 3, ապա դրանք նույն չափը կլինեն
  • Flex- աճով. 3. Եթե \u200b\u200bդրանցից մեկը ունի Flex-Grow: 12, այն կլինի 4 անգամ ավելին, քան բոլորը

Ինչպես է դա աշխատում? Ենթադրենք, բեռնարկղը ունի 500px լայնություն եւ պարունակում է երկու տարր, որոնցից յուրաքանչյուրը ունի 100px հիմնական լայնությունը: Հետեւաբար, 300 անվճար պիքսել է մնում բեռնարկղում: Այժմ, եթե նշեք Flex-Grow: 2 առաջին տարրը. եւ երկրորդ Flex-Grow: 1; Բլոկները կվերցնեն ամբողջ մատչելի բեռնարկղը, եւ առաջին բլոկի լայնությունը կլինի 300px եւ երկրորդ 200px: Դա բացատրվում է այն փաստով, որ բեռնարկղում առկա 300px ազատ տարածքը բաժանվել է 2: 1-ի եւ + 100px երկրորդի տարրերի միջեւ:

Նշում. Այն արժեքի մեջ, որը կարող եք նշել Կոտորակային համարներՕրինակ, 0,5 - Flex-Grow: 0.5

Flex-Shrink:

Նշում է տարրի կրճատման գործոնը: Հատկությունը հակառակ Flex- աճող է եւ որոշում է, թե ինչպես պետք է տարրը սեղմվի, եթե բեռնարկղում ազատ տեղ չկա: Նրանք: Գույքը սկսում է աշխատել, երբ բոլոր տարրերի չափերի գումարը ավելի մեծ է, քան բեռնարկղի չափը:

Լռելյայն Flex-Shrink: 1

Ենթադրենք, որ բեռնարկղը ունի 600px լայնություն եւ պարունակում է երկու տարր, որոնցից յուրաքանչյուրը ունի 300px լայնություն `Flex-soft: , Նրանք: Երկու տարր ամբողջությամբ լցնում են բեռնարկղը: Առաջին տարրը ցույց կտա Flex-Shrink: 2; եւ երկրորդ Flex-Shrink. 1; , Այժմ բեռնարկղի լայնությունը նվազեցնելով 300px, I.e. Elements- ը պետք է լինի 300px, որը գտնվում է բեռնարկղի ներսում: Դրանք սեղմված կլինեն 2: 1 հարաբերակցությամբ, այսինքն: Առաջին միավորը կմիանա 200PX, իսկ երկրորդը `100px եւ տարրերի նոր չափսերը կլինեն 100px եւ 200PX:

Նշում. Արժեքում կարող եք նշել կոտորակային համարները, օրինակ `0.5 - Flex-Shrink: 0.5

Flex- հիմք.

Կարգավորում է տարրի հիմնական լայնությունը `կտառվի տարրի լայնության վրա ազդող մնացած պայմաններից առաջ: Արժեքը կարելի է նշել PX, EM, REM,%, VW, VH եւ այլն: Վերջնական լայնությունը կախված կլինի բազային լայնությունից եւ Flex-Grow- ի արժեքների, ֆլեքս-նեղացման եւ բլոկի ներսում բովանդակության մեջ: Ավտոմատով տարրը ստանում է հիմնական լայնությունը դրա ներսում պարունակության համեմատ:

Լռելյայն, ավտոմատ

Երբեմն ավելի լավ է, որ տարրի լայնությունը կոշտ տեղադրվի սովորական լայնության գույքի միջոցով: Օրինակ, լայնությունը `50%; Դա կնշանակի, որ բեռնարկղի ներսում գտնվող տարրը կլինի ճիշտ 50%, սակայն Flex-Grow եւ Flex-Shrink- ի հատկությունները նույնպես կաշխատեն: Դա կարող է անհրաժեշտ լինել, երբ տարրը ձգվում է դրա ներսում պարունակությամբ, ավելի շատ նշված է Flex- ի հիմունքներով: Օրինակ.

flex- ի հիմքը կլինի «կոշտ», եթե վերականգնվի առաձգականությունը եւ սեղմումը. Flex-soft: 200px; Flex-Grow: 0; Flex-Shrink: 0; , Այս ամենը կարելի է գրել որպես Flex: 0 0 200px; ,

Flex: (աճում է նեղանալ)

Երեք հատկությունների կարճ ձայնագրում. Flex-Grow Flex-Shrink Flex- ի հիմքը:

Լռելյայն, FLEX: 0 1 AUTO

Այնուամենայնիվ, դուք կարող եք նշել մեկ եւ երկու արժեք.

Flex: Ոչ մեկը; / * 0 0 ավտոմատ * / / * համարը * / FLEX: 2; / * Flex-Grow (Flex- ի հիմքը գնում է 0) * / / * Ոչ մի համար * / FLEX: 10EM; / * Flex-հիմք. 10EM * / FLEX: 30px; / * Flex-հիմք `30px * / Flex: Auto; / * Flex-հիմք. Auto * / Flex: բովանդակություն; / * Flex-հիմք. Բովանդակություն * / FLEX: 1 30px; / * Flex-Grow եւ Flex-հիմք * / Flex: 2 2; / * Flex-Grow եւ Flex-Shrink (Flex- ի հիմքը գնում է 0) * / FLEX: 2 2 10%; / * Flex-Grow եւ Flex-Shrink եւ Flex-Hair * / Align- Self.

Թույլ է տալիս փոխել հավասարեցման կետերը, միայն առանձին կետի համար:

Լռելյայն. Align-Items բեռնարկղից

  • Ձգվել: - տարրը ձգվում է ամբողջությամբ լցնելով լարը
  • flex-start. - տարրը սեղմվում է գծի սկզբում
  • flex-End. - տարրը սեղմվում է տողի վերջում
  • Կենտրոն - տարրը հավասարեցված է գծի կենտրոնում
  • Ելակետ - Տարրը հավասարեցված է տեքստի հիմնական տողից

Պատվեր:

Թույլ է տալիս փոխել տարրի կարգը (դիրքը, դիրքը) ընդհանուր շարքում:

Լռելյայն, Պատվեր, 0

Ըստ լռելյայն, տարրերը ունեն պատվեր. 0 եւ դրված իրենց տեսքի կարգը HTML կոդում եւ շարքի ուղղությամբ: Բայց եթե փոխեք պատվերի գույքի արժեքը, իրերը կկառուցվեն արժեքների կարգով. -1 0 1 2 3 ... Օրինակ, եթե առարկաներից մեկը նշում է կարգը. 1, ապա նախ կշարունակեք բոլոր զրո, ապա 1-ից մի տարր:

Այսպիսով, հնարավոր է, օրինակ, առաջին տարրը վերածվելու համար, միաժամանակ չփոխելով այլ տարրերի կամ HTML կոդի շարժման ուղղությունը:

Նշումներ

Որն է տարբերությունը Flex- ի միջեւ լայնությունից:

Flex եռուցման եւ լայնության միջեւ կարեւոր տարբերություններ.

    flex- ի հիմքը գործում է միայն հիմնական առանցքի համար: Սա նշանակում է, որ երբ Flex-Direction. Row Flex- ի հիմքը վերահսկում է լայնությունը (լայնությունը), իսկ երբ Flex-Direction. Column- ը վերահսկում է բարձրությունը (բարձրությունը): ,

    flex- ի հիմքը վերաբերում է միայն Flex տարրերին: Այսպիսով, եթե անջատեք Flex- ը բեռնարկղում, այս գույքը չի ունենա ազդեցություն:

    Բեռնարկղերի բացարձակ տարրերը չեն մասնակցում Flex նախագծմանը ... Եվ, հետեւաբար, Flex- ի հիմքը չի ազդում Flex բեռնարկղի տարրերի վրա, եթե դրանք բացարձակապես դիրքավորված են: Նրանց պետք է հստակեցնել լայնությունը / բարձրությունը:

  • Flex հատկություններ օգտագործելիս 3 արժեքներ (Flex-Grow / Flex-Shrink / Flex- ի հիմք), կարող եք մի փոքր համատեղել եւ գրել, եւ լայնության համար անհրաժեշտ է գրել կամ նեղանալ: Օրինակ, FLEX: 0 0 50% \u003d\u003d Լայնություն, 50%; Flex-Shrink: 0; , Երբեմն դա պարզապես անհարմար է:

Հնարավորության դեպքում, դեռեւս նախապատվությունը տալիս է Flex- ի հիմքը: Օգտագործեք լայնությունը միայն այն դեպքում, երբ Flex- ի հիմքը հարմար չէ:

Տարբերությունները Flex- ի հիմքը լայնությունից `սխալ կամ ֆիչք:

Flex Element- ի ներսում պարունակությունը կրճատում է այն եւ չի կարող դուրս գալ իր սահմաններից: Այնուամենայնիվ, եթե լայնությունը դնում եք լայնության կամ առավելագույն լայնության միջոցով, եւ ոչ թե Flex- ի հիմքը, Flex բեռնարկղի ներսում գտնվող տարրը կկարողանա դուրս գալ այս բեռնարկղից (երբեմն անհրաժեշտ է այս պահվածքի համար): Օրինակ:

FLEX դասավորության օրինակներ

Օրինակներում, ցանկացած վայրում պատկերացնում է նախածանցներ խաչմերուկի համար: Ես դա արեցի CSS- ի հարմար ընթերցանության համար: Հետեւաբար տեսեք վերջին օրինակները: chrome- ի տարբերակները կամ Firefox:

# 1 Պարզ օրինակ ուղղահայաց հավասարեցմամբ եւ հորիզոնական

Սկսենք ամենապարզ օրինակից `ուղղահայաց եւ հորիզոնական մակարդակի վրա միաժամանակ եւ բլոկի ցանկացած բարձրության վրա, նույնիսկ ռետինե:

Տեքստը մեջտեղում

Կամ այդպես, առանց բլոկի ներսում.

Տեքստը մեջտեղում

# 1.2 բաժանում (բացը) Flex բլոկի տարրերի միջեւ

Տեղադրելու համար տարայի տարրերը եզրերի վրա եւ կամայականորեն ընտրեք տարրը, որից հետո ընդմիջում կլինի, դուք պետք է օգտագործեք մարժայի ձախ գույքը. Ավտոմատ կամ մարժա:

# 2 հարմարվող մենյու Flex- ում

Page անկում կատարել ընտրացանկ: Լայն էկրանին այն պետք է լինի ճիշտ: Միջին հաշվով, մեջտեղում հավասարեցված: Եվ մի փոքր մեկ տարրի վրա պետք է լինի նոր գծի վրա:

# 3 հարմարվողական 3 սյուն

Այս օրինակը ցույց է տալիս, թե որքան արագ եւ հարմար է 3 սյուներ, որոնք, նեղանալիս, կվերածվեն 2-ի, իսկ հետո, 1-ում:

Խնդրում ենք նկատի ունենալ, որ դա կարելի է անել առանց մեդիա կանոններ օգտագործելու, բոլորը Flex:

1
2
3
4
5
6

Գնացեք jsfidlede.net եւ փոխեք «արդյունքի» բաժնի լայնությունը

# 4 հարմարվողական բլոկներ Flex- ի վրա

Ենթադրենք, մենք պետք է հանենք 3 բլոկ, մեկ մեծ եւ երկու փոքր: Միեւնույն ժամանակ անհրաժեշտ է, որ բլոկները տեղավորվեն փոքր էկրանների մեջ: Կատարել.

1
2
3

Գնացեք jsfidlede.net եւ փոխեք «արդյունքի» բաժնի լայնությունը

# 5 պատկերասրահ Flex եւ Transition

Այս օրինակը ցույց է տալիս, թե որքան արագ կարող եք գեղեցիկ աչքի ակորդեոն պատրաստել ֆլեքսով նկարներով: Ուշադրություն դարձրեք Flex- ի անցումային գույքին:

# 6 FLEX FLEX (պարզապես օրինակ)

Առաջադրանքը պատրաստեք ճկուն բլոկ: Որպեսզի յուրաքանչյուր բլոկում տեքստի սկիզբը նույն հորիզոնական գծի վրա էր: Նրանք: Լայնության լայնությամբ բլոկները աճում են բարձրությամբ: Անհրաժեշտ է, որ նկարը վերեւում լինի, կոճակը միշտ ներքեւում է, իսկ մեջտեղում գտնվող տեքստը սկսվեց մեկ հորիզոնական գծի վրա ...

Այս խնդիրը լուծելու համար բլոկներն իրենք ձգվում են Flex- ի միջոցով եւ տեղադրվում է առավելագույն հնարավոր լայնությունը: Յուրաքանչյուր ներքին ստորաբաժանում նույնպես դիզայնով ճկուն է, ֆլեքս-ուղղությամբ. Սյունակ; եւ տարրը մեջտեղում (որտեղ գտնվում է տեքստը) ձգված Flex-Grow: 1; Լրացնելու բոլոր ազատ տարածքը, արդյունքը ձեռք է բերվում. Տեքստը սկսվեց մեկ տողով ...

Լրացուցիչ օրինակներ

Զննարկչի աջակցությունը `98.3%

Իհարկե, ամբողջական աջակցություն չկա, բայց ամեն ինչ Ժամանակակից զննարկիչներ Աջակցեք FlexBox- ի ձեւավորումներին: Ոմանց համար դուք դեռ պետք է նշեք նախածանցները: Իրական նկարի համար նայեք Caniuse.com- ում եւ տեսեք, որ այսօր օգտագործված զննարկչի 96.3% -ը կաշխատի առանց նախածանցների, 98.3% նախածանցով: Սա հիանալի ցուցանիշ է `FlexBox- ը համարձակորեն օգտագործելու համար:

Իմանալ, թե այսօր ինչ նախածանցներ են (2019 թվականի հունիս), ես կտամ բոլոր Flex կանոնների օրինակ Անհրաժեշտ նախածանցներ:

/ * Կոնտեյներ * / .fex (ցուցադրում. -Webkit-box; ցուցադրում. -MS-FlexBox; ցուցադրում, ցուցադրում. -MS-INLOW-FLEXBOX; -Էբկիթ-արկղ-կողմնորոշիչ. Ուղղահայաց; -webkit-box-Formation: -Flex-հոսք. Սյունակի փաթաթում; Flex-Flow: Column Wrap; -webkit-Box-Pack. Հիմնավորեք; Արդարացրեք-բովանդակություն. Բաշխել; համահունչ; տարածություն.) / * Տարրեր * / .flex-Ither (-s -ms-Flex- ի. 1; Flex-Flex- Բացասական. 2; Flex-Shrink: 2; -MS-Flex- ի նախընտրելի չափը, 100px; Flex-soft: 100PX; 1 2 100px; Կենտրոն; համացանցային. Կենտրոն; -webkit-box-soldic-group. 3; -MS-Flex-Order: 2; Order: 2;)

Ավելի լավ է, եթե նախածանցներով հատկությունները կուղեւորվեն բնօրինակ գույքի:
Այսօր անհապաղ (Caniuse- ի կողմից) նախածանցի (ըստ Caniuse- ի) համար (ըստ Caniuse- ի), բայց ընդհանուր առմամբ նախածանցում է:

Chrome Safari. Firefox. Օպերա: Այսինքն Android iOS.
20- (հին) 3.1+ (հին) 2-21 (հին) 10 (Tweeger) 2.1+ (հին) 3.2+ (հին)
21+ (նոր) 6.1+ (նոր) 22+ (նոր) 12.1+ (նոր) 11+ (նոր) 4.4+ (նոր) 7.1+ (նոր)
  • (Նոր) - Նոր շարահյուսություն. Display ուցադրում. Flex; ,
  • (Tweener) - Old Unonofial Syntax 2011: Display ուցադրում, FlexBox; ,
  • (Հին) - Հին Syntax 2009: Display ուցադրում, տուփ;

Տեսանյութ

Դե, մի մոռացեք տեսանյութի մասին, երբեմն էլ հետաքրքիր եւ հասկանալի է: Ահա մի քանի հանրաճանաչ.

Օգտակար հղումներ FLEX- ի համար

    flexBoxFroggy.com - Flexbox կրթական խաղ:

    Flexplorer- ը Visual Flex Code Designer է: