A Complete Guide to flexbox css

jelölés modul flexbox (az angol Flexible Box - rugalmas blokk), aki jelenleg a szakaszában „a lehetőségét ajánlja” szabványok W3C (W3C jelölt ajánlás) célja, hogy biztosítsa a hatékonyabb módja a jelölés, az összehangolás és helyek elosztása az elemek között a tartályban, akkor is, ha azok ismeretlen nagyságú és / vagy dinamikusan kerül meghatározásra (ezért nevezték „rugalmas”).

Az alapgondolata rugalmas elrendezés - az, hogy a tartály képes megváltoztatni a magasság / szélesség (és sorrendben) elemek optimális töltési rendelkezésre álló hely (főleg a támogatást minden típusú és méretű képernyők).

Flex konténerek futó szakaszok elemeket, hogy töltse ki helyet, vagy tömöríteni őket, hogy megakadályozzák határértékeket meghaladó mértékben.

A legfontosabb, flexbox jelölést nem függ az irányt, ellentétben a hagyományos jelölést (blokkok, hogy függőlegesen, és a vonal elemek, vízszintesen rendeztük).

Bár az elemek a hagyományos elrendezés jól működik az oldalakat, hiányzik belőlük a rugalmasság (és ez nem játék a szavakkal), hogy támogassa a nagy és összetett alkalmazások (különösen, amikor a változó a tájolás, méret, feszültség, tömörítés, és így tovább).

Megjegyzés. Flexbox elrendezés a legmegfelelőbb alkalmazás-összetevők és a kis modell, míg az elrendezés segítségével grid elrendezés, nagyobb elrendezés.

Alapfogalmak és kifejezések

Mivel flexbox egy egész helyett külön tulajdon, ez magában foglalja a sok elemét, beleértve egy sor tulajdonságot. Néhány ezek közül tervezték a tartályra (szülő elem, az úgynevezett flex-konténer), míg mások kell alkalmazni, hogy a gyermek elemek (nevezzük őket flex-sejtek).

Ha a hagyományos jelölések alapul irányban a blokkok és alsó elemek, a Flex -razmetka alapuló irányban Flex, áramlás. Kérjük, vegye figyelembe az alábbi táblázatot a leírás, magyarázza a alapgondolata flex -razmetkoy:

A Complete Guide to flexbox css

Alapvetően, az elemek kerül vagy a nagytengely mentén (a fő-kezdőponttól a fő-vége), vagy mentén egy keresztirányú tengely (a pont a kereszt-elejétől a kereszt-end):
  • főtengelye - ez a fő tengelye a Flex konténerek fut, amely mentén vannak elhelyezve flex-elemek. Legyen óvatos, akkor nem feltétlenül vízszintesen, pozícióját tulajdonságaitól függ a Flex-irányban (lásd alább);
  • fő-start | fő-end - Flex-elemek tartály belsejében elhelyezett, a fő-kezdőpontját. és eléri a fő-végpont;
  • fő mérete - a szélessége vagy magassága a Flex-elem, attól függően, hogy az alapul szolgáló érték. Mivel fő mérete ingatlanok értéke lehet állítani, hogy a szélesség vagy magasság;
  • kereszttengely - oldalirányú tengelye merőleges a fő tengely. A irány függ az irányt a főtengellyel.
  • cross-Start | cross-end - flex elemek Többsoros megtöltött és egy konténerbe tesszük, kezdve a kereszt-start felé oldalsó keresztmetszeti end;
  • kereszt mérete - szélessége vagy magassága a Flex-elem, attól függően, hogy a kiválasztott dimenzió. Az ingatlan lehet állítani, hogy a width vagy magasságát keresztirányú.

A tulajdonságok a szülő osztály (flex-konténer)

A Complete Guide to flexbox css

Ez a tulajdonság határozza meg a flex konténerek futó vízszintes vagy egy blokk, attól függően, hogy a beállított érték. Azt is lehetővé teszi a rugalmas -kontekst valamennyi közvetlen leszármazottai:

Megjegyezzük, hogy a CSS -stolbtsy (oszlopok) nincs hatása flex konténerek fut.

Flex-irányban

Ez a tulajdonság az elsődleges tengely meghatározó az irányt, amelyben a Flex-elemek vannak elhelyezve a tartályok futó Flex. Flexbox (kivéve opcionális pakolások) fogalma az egyirányú jelet.

Képzeljük el, hogy flex-elemek elsősorban található akár vízszintes vagy függőleges oszlopok:

  • sor (alapértelmezett): balról jobbra az ltr; igaz, rtl;
  • sor-fordított. jobbról balra ltr; balról jobbra rtl;
  • oszlopban. valamint egy sorban. de fentről lefelé;
  • oszlop-fordított. valamint a sor-fordított. de alulról felfelé.

Alapértelmezésben flex-elemek próbálja szorítani egy sorban. Meg lehet változtatni, és hogyan, hogy lezárja az elemeket az ingatlan. Szerepet játszik, és az irányt, amelyben az új vonalak:

  • nowrap (alapértelmezett): A egyvonalas / maradt ltr; igaz, rtl;
  • csomagolja. többsoros / maradt ltr; igaz, rtl;
  • csomagolja-hátra. többsoros / jobbról balra ltr; balról jobbra rtl.

Flex-áramlás (alkalmazott szülő elem Flex-konténer)

Ez egy rövidített formája tulajdonságainak Flex-irányban és a Flex-pakolás. amelyek együttesen meghatározzák a fő tengely és az oldalsó flex konténerek fut. Az alapértelmezett a sorban nowrap:

indokolják-tartalom

A Complete Guide to flexbox css

Ez a tulajdonság az összehangolás fő tengelye mentén. Ez segít terjeszteni az extra helyet abban az esetben, hogy az összes A Flex-elemeket egy sorban merev vagy rugalmas, de elérte a maximális méretét. Továbbá, ez a tulajdonság lehetővé teszi, hogy átveheti az irányítást a kiegyenlítési elemek, ha azok határain kívül a húr:

  • Flex-start (alapértelmezett): az elemek igazodik a sor elejére;
  • flex-végén. elemek igazodik a végén a szöveg;
  • központ. elemek egy vonalban a középső sorban;
  • tér-között. elemek egyenletesen oszlanak el egy sorban: az első elem található a sor elején, az utóbbi - a végén;
  • hely körül. elemek egyenletesen oszlanak el egy sorban azonos távolság közöttük.

összehangolása-tételek

A Complete Guide to flexbox css

Ez a tulajdonság határozza meg, hogyan az alapértelmezett Flex-elemek vannak elrendezve egy keresztirányú tengely körül a pillanatnyi sorban. Meg lehet tekinteni indokolhatja-tartalom változata a keresztirányú tengely (merőleges a fő):

  • flex-start. szegély elemek kereszt-start található a kereszt-startvonalon;
  • flex-végén. szegély elemek kereszt-start található a kereszt-end vonalat;
  • központ. elemek központú kereszttengely körül;
  • kiindulási értékhez képest. beállítóelemek történik, a kiindulási;
  • stretch (alapértelmezett) elemek megnyúlnak, hogy töltse ki a tartály (figyelembe véve az értékek min-szélesség / max-szélesség).

összehangolása-tartalom

A Complete Guide to flexbox css

Ez a tulajdonság lehetővé teszi, hogy összehangolja a hajlítási vonal belül konténerek fut, ha van hely a keresztirányú tengely, amely hasonló ahhoz, ahogy indokolja-tartalom tulajdonság igazítja az egyes elemek relatív a főtengellyel.

Megjegyzés. ez a funkció nem működik, ha csak egy sort a flex-elemek:

  • flex-start. sorok vannak elrendezve elején a tartály;
  • flex-végén. sorok vannak elrendezve végén a tartály;
  • központ. vonal közepén található a tartály;
  • tér-között. vonalak egyenletesen vannak elosztva; első sor - elején a tartály, és az utóbbi - a végén;
  • hely körül. sornak egyenletesen egymástól egyenlő távolságban;
  • szakaszon (alapértelmezett): A vonalak vannak nyújtva, hogy kitöltse a maradék helyet.

Tulajdonságok gyermek elemek

(Flex-sejtek)

A Complete Guide to flexbox css

A Complete Guide to flexbox css

Alapértelmezés szerint, Flex-elemek vannak elrendezve a meghatározott sorrendben a forrás által. Azonban a rend ingatlan a sorrendet szabályozza, hogy mely elemek jelennek meg a flex konténerek futó:

Ez a funkció lehetővé teszi a rugalmas elem „nőni” a szükség esetén. Beletelik egy dimenzió nélküli érték szolgáló arányban. Ez az érték határozza meg, hogy mennyi a rendelkezésre álló tér a tartályokba futó flex elem eltarthat.

Ha az összes elemet flex-nőnek tulajdonság értéke 1, akkor minden gyermek fogja kérni az azonos méretű tartály belsejében. Ha a gyermek egyik eleme az értéke 2, tart kétszer annyi helyet, mint a többi:

A negatív számok nem engedélyezettek.

flex zsugorodó

Ez a tulajdonság állítja flex-elemek tömöríteni szükség esetén:

A negatív számok nem engedélyezettek.

flex-alapon

Ez a tulajdonság határozza meg a méret az alapértelmezett elem terjesztése előtt a maradék helyet:

Ez a tulajdonság egy rövidített formája a tulajdonságainak kombinációja a Flex-nőnek, Flex-összezsugorodik és flex-alapon. A második és a harmadik paraméter (Flex-zsugorodás és a Flex-alapon) vannak beállítva adott esetben. Az alapértelmezett értékek: 0 1 auto:

összehangolása-én

A Complete Guide to flexbox css

Ez a tulajdonság lehetővé teszi, hogy felülbírálja az összehangolás az alapértelmezett (vagy egy bizonyos tulajdonság align-tételek) az egyedi flex-elemekkel.

A rendelkezésre álló értékek megtalálja a leírást tulajdonságainak align-tételek:

Felhívjuk figyelmét, hogy az úszó. világos és vertical-align nem működik flex-elem.

Kezdjük egy nagyon egyszerű példát, döntés szinte mindennapos probléma: a tökéletes illeszkedését a központ. Semmi sem könnyebb, ha használja flexbox:

Ez a példa azon a tényen alapul, hogy az ingatlan fedezet. beállítása automatikus. Ez elnyeli a felesleges helyet. Ezért ezt a feladatot összehangolja a francia elem pontosan a közepén a két tengely.

Most vessünk egy pár tulajdonságait. Tegyük fel, hogy van egy lista a 6 elem, mind a fix méretű (esztétikai), de a képesség, hogy auto-fill.

Azt akarjuk, hogy szép, egyenletesen elosztva a vízszintes tengely mentén úgy, hogy amikor a böngésző ablak átméretezhető minden látszott is (használata nélkül médialekérdezéseket):

Kész! Az összes többi - van hézag kérdéseket. Itt van egy bemutató ezt a példát. Menj, és megpróbálja átméretezni az ablakot, hogy mi fog történni:

Próbáljunk valami mást. Tegyük fel, hogy a tetején a weboldal a navigációs menü, jobbra igazított, de azt szeretnénk, hogy közepes méretű képernyőkön van igazítva a központ, és a készülékek kis képernyők - vannak elhelyezve egy oszlopban. Egészen egyszerűen:

Próbáljuk még jobban, játszik a „rugalmas” flex-elemekkel. Mit szólnál mobiljelölési három oszlopban a címet és egy pince teljes szélességében? És hajtott elemeket, függetlenül a megadott sorrendben forrás:

Használata előtagokat flexbox

Flexbox eladóval verzió használatát igényli előtagokat, hogy képes legyen támogatni az összes főbb böngészők. Ez nem csak a használatát előtagok az eladó verzió tulajdonságait, hanem teljesen más tulajdonság neveket és értékeket.

És mindez azért, mert flexbox leírás idővel megváltozott, ami a „régi” (régi) „Tweener” (középfokú), és az „új” (új) változat.

Talán a legjobb módja ebben a helyzetben -, hogy írjon kódot az új (és egyben utolsó) szintaxis, és átmennek a CSS Autoprefixer. ami nagyon jó kezelni visszavonás az előző verziók.

Alternatívaként a következő egy eljárás Sass @mixin segíteni bizonyos előtagokat, ami szintén azt mutatja azt az elképzelést, hogy milyen lépéseket kell tenni:

böngésző támogatása

Kapcsolódó cikkek