A Flexbox és a CSS Grid alapos ismerete szükséges, ha lenyűgöző, reszponzív webhelyeket szeretne készíteni.

Ha már régóta ír CSS-t, jó eséllyel legalább hallott ezekről a kifejezésekről. Lehet, hogy bizonyos mértékig az egyiket vagy mindkettőt használta. Mindkettő erőteljes része a CSS-nek, hasonló, de finoman eltérő használati esetekkel.

Mi az a Flexbox?

A Flexbox egy egydimenziós CSS-elrendezési módszer, amely már régóta létezik. A Flexboxot úgy tekintheti, mint egy csomó kapcsolódó CSS-tulajdonságot, amellyel a tárolóban lévő HTML-elemeket igazíthatja, és kezelheti a köztük lévő teret.

A Flexbox előtt ez a fajta elrendezés frusztráló és nehézkes használatot igényelt az úszó és pozíció tulajdonságai.

Ha aggódik a Flexbox böngésző támogatása miatt, ne aggódjon. Alapján caniuse.com, minden modern böngésző támogatja a Flexboxot.

A Flexbox alapjai

Míg A Flexbox számos CSS-tulajdonságot tartalmaz, az alapok nagyon egyszerűek. A Flexbox használata mindig azzal kezdődik, hogy hozzáadásával egy szülőtárolót flex-tárolóként deklarál

instagram viewer
kijelző: flex stílusszabályaihoz. Ezzel automatikusan az elem összes leszármazottja lesz flex-elem.

Ezt követően a flex-tartályon belüli térelosztást a gombbal szabályozhatja indokol-tartalom tulajdonság. Szabályozhatja a rugalmas elemek igazítását a align-ites ingatlan.

Íme egy kódpélda, amely a Flexbox segítségével egyenletesen osztja el a tároló területét a gyermekei között, és igazítja őket a tároló közepére. Ez a HTML:

<div class="tartály">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>

Ez a CSS:

.tartály {
kijelző: flex;
szélesség: 100%;
indokolja-tartalom: tér-körül;
align-ites: center;
keret: 1px tömör fekete;
magasság: 200 képpont;
}

.tartály > div {
magasság: 100 képpont;
szélesség: 100 képpont;
háttérszín: piros;
fehér szín;
betűméret: 5rem;
szöveg igazítása: középre;
határsugár: 5 képpont;
}

És íme a kimenet:

Mi az a CSS Grid?

A CSS Grid egy olyan elrendezési rendszer, amely kiegészíti a Flexboxot. A Flexbox erős, de nem nagyon alkalmas bizonyos típusú elrendezésekhez. A Flexbox segítségével egy teljes oldal szerkezetének elrendezése frusztráló feladat lesz, amely csúnya, nem szematikus jelölésekkel és hackelt CSS-sel jár.

A CSS Grid nem a Flexbox helyettesítője, hanem egy alternatív rendszer bizonyos helyzetekre.

A CSS Grid támogatása nem olyan kiterjedt, mint a Flexboxé, de a Grid igen ésszerűen jól támogatott 2022-ben.

A CSS Grid alapjai

A Grid koncepciója egyszerű. Ahogy a neve is sugallja, a CSS Grid lehetővé teszi, hogy a szülőtárolóban lévő teret sor-oszlop rácsra ossza fel, tetszőleges számú sorral/oszloppal. Ezt követően a szülő rács vonalaira hivatkozva adja meg az utódelemek pozícióját.

Kezdje a hozzáadással kijelző: rács a szülőtárolóba. Ezután használja a rács-sablon-sorok és rács-sablon-oszlopok tulajdonságokkal megadhatja azokat a sorokat és oszlopokat, amelyekre fel szeretné osztani a rácsot. Ezután használhatja a rács-oszlop és rács-sor tulajdonságokat a gyermekelemeken, hogy megmondják nekik, hogy a rácsban hol kell lenniük. Nézzünk egy Grid példát, amely a korábbi ötelemes beállítást használja, de bonyolultabb elrendezésben.

Íme a HTML:

<div class="tartály">
<div>1</div>
<div class="kettő">2</div>
<div class="három">3</div>
<div class="négy">4</div>
<div class="öt">5</div>
</div>

Íme a CSS:

.tartály {
kijelző: rács;
szélesség: 100%;
grid-template-rows: ismétlés (3, 1fr);
grid-template-columns: ismétlés (3, 1fr);
rés: 0.5rem;
keret: 1px tömör fekete;
magasság: 300 képpont;
}

.tartály > div {
háttérszín: piros;
fehér szín;
betűméret: 5rem;
szöveg igazítása: középre;
határsugár: 5 képpont;
}

.tartály &gt; .kettő {
rács-sor: 2;
rács-oszlop: 2;
}

Íme a kimenet:

A CSS Grid számos elemet is tartalmaz egyéb tulajdonságok, amelyek segítségével bonyolultabb elrendezéseket hozhat létre.

Melyiket érdemes használni?

Először is fontos megjegyezni, hogy semmi sem akadályozza meg a Flexbox és a Grid együttes használatát, és bizonyos esetekben ez az optimális választás. Ennek ellenére válaszoljunk arra a kérdésre, hogy ezek a rendszerek mely elrendezések megvalósítására a legalkalmasabbak.

A Flexbox a legalkalmasabb olyan elrendezésekhez, amelyek az elemek egy sorban történő igazítását és elosztását foglalják magukban. Ilyen elrendezés például az ikonok igazítása a szakasz végén, vagy a hivatkozások elrendezése a navigációs sávban.

A rács viszont akkor ragyog a legfényesebben, ha az elemeket pontosan kell pozícionálni a többihez képest (vízszintesen és függőlegesen is), és erre az elhelyezésre van szüksége, hogy könnyen alkalmazkodjon a különböző képernyőméretekhez.

A bemutatáshoz itt van a kód, amelyet meg kell írnia, hogy újra létrehozza az elrendezést a Grid példából a Flexbox segítségével.

A HTML:

<div class="tartály">
<div class="al egy">
<div>1</div>
<div>5</div>
</div>

<div class="al kettes">
<div>2</div>
</div>

<div class="al három">
<div>4</div>
<div>3</div>
</div>
</div>

A CSS:

.tartály {
keret: 1px tömör fekete;
magasság: 300 képpont;
}

.alatti {
kijelző: flex;
szélesség: 100%;
}

.egy, .három {
indokol-tartalom: szóköz-között
}

.kettő {
indokol-tartalom: center;
}

.alatti > div {
magasság: 100 képpont;
szélesség: 100 képpont;
háttérszín: piros;
fehér szín;
betűméret: 5rem;
szöveg igazítása: középre;
határsugár: 5 képpont;
}

És íme a kimenet:

Itt a legfontosabb megjegyezni, hogy bár ez a kód ugyanazt a kimenetet adja, mint a Grid példa, a jelölés itt lényegesen bonyolultabb. Ennek az elrendezésnek a megvalósításához alkonténerekre van szükség, és a számozott diveket a jelölésben rendellenesen kell elhelyezni.

Továbbá, tegyük fel, hogy ezt az elrendezést kínos helyzetbe kell állítania: mondjuk az 5. div-t igazítsa a 2-eshez. Ha a Flexboxot használta volna ehhez, akkor ehhez kell folyamodnia pozíció: relatív vagy valami hasonló. A Grid használatával mindössze annyit kell tennie, hogy eltolja a rács-oszlop ingatlan.

Ezzel szemben a Flexbox példából származó egyszerű egysoros igazítás megvalósítása Griddel sokkal több CSS-t eredményezne. A rács nyilvánvalóan kevésbé alkalmas az ilyen elrendezéshez.

Míg a Flexbox és a Grid többnyire megismételheti egymás hatásait, van néhány kivétel. Az elemek átfedése meglehetősen nehéz csak a Flexbox segítségével, de nagyon egyszerű a Griddel. A rács azt sem teszi lehetővé, hogy az elemek eltolják magukat a többi elemtől margóval: automatikusan, ahogy a Flexbox teszi.

A Flexbox és a Grid hatékony elrendezési rendszerek

A Flexbox és a CSS Grid egyaránt olyan tervezőrendszer, amely megkönnyíti a weboldal tartalmának elrendezését. A rács a legjobb a kétdimenziós elrendezésekhez, ahol sok elemet kell pontosan elhelyezni egymáshoz képest. A Flexbox jobb az egydimenziós vagy egysoros elrendezésekhez, ahol csak egy csomó elemet kell meghatározott módon elhelyezni.