A FLEXBOX egy nagyszerű eszköz a CSS Bloat csökkentéséhez, és van néhány cukor beépített, hogy foglalkozzon olyan dolgokkal, mint a forrásrendelés és az igazítás. De ez nem kínál semmilyen segítséget az oszlop és az ereszcsatorna méretét létrehozó matematikához. Amennyire több szakértő ismételten: Flexbox szép, de ez nem egy rácsrendszer.
Flexboxot kell használnunk, de nem szabad eldobni a rácsrendszerek mögött lévő alapfogalmakat, amelyek kihúztak minket a tervezés "Geocities korszakából":
Használhatjuk az egyik flexbox rácsrendszer egyikét, de minden becsületességben a mögöttes stílusok többnyire ugyanazok, mint az úszó alapú rácsok. A szerzők csak adjanak hozzá a kijelzőn: FLEX a tartályhoz, valamint néhány segítő osztály, amely obsuscate flexbox tulajdonságokat (például egy olyan osztályt szeretne .Grid-függőleges-align-mid egy obsuscation Align-tételek: Központ ).
Az egyetlen különbség az, hogy az oszlopok "hajlítottak", ami azt jelenti, hogy megkapjuk a korábban említett cukrot. De ez még mindig nem oldja meg a legfontosabb problémákat, amelyek ma a rácsok szembesülnek: a rácsrendszerek továbbra is egy csomó CSS Bloat, és a rácsok még mindig unalmasak.
A rácsszerzők tipikusan hatalmas csomagokat terjesztenek, amelyek az önkényes eszköz méretének megfelelően ellensúlyozhatják, forrásrendet, átméretezhetnek és átméretezhetnek. A Gzipre támaszkodnak, hogy enyhítsék néhány kárt, de ez nem kap mindent. Mi van, ha nincs szükség azokra az extra funkciókra?
Feltételezve, hogy az Ön által jelenleg használt keretet a Rács Mixins-ot használja, a legjobb megoldás lehet tanulni azokat és összeállíthatja saját oszlopait. Ez kis duzzadást eredményez, de korlátozza a rácsokat a frakciókhoz, és nem kínál sok mobilitást a különböző keretek között.
A második kérdésre. A tervezők mentálisan lezártak, hogy minden döntésüket egyformán méretű oszlopok bizonyos kombinációján alapuljanak. Ennek eredményeképpen az egész internet kezd villogni együtt egy "Stack-re a mobilon; 1/12 oszlop kombinációk bármi más dystopia.
A flexbox bevezette flex-növekedés , amely egy kicsit felszabadított minket. Most meg tudjuk állítani a méreteket, amelyek jól néznek ki, és kitölthetjük a fennmaradó helyet egy nyújtott elemgel, de a csatornák összhangban vannak az egész oldalon? Olyan tartalmi területek, amelyek bármilyen arányban vannak, szem előtt tartva, vagy visszajöttünk, hogy csak szárnyadjon?
Mindkét probléma megoldása a Postcss-hangya nevű függvényben van csomagolva. Postcss pluginok használhatók olyan építési eszközökkel, mint például a Webpack, Gulp vagy egyszerűen a parancssor. A hangya zökkenőmentesen keveredik a sima CSS-t (vagy bármely előfeldolgozó) egy megtévesztő egyszerű API-val, amely több tucatnyi elme-bogglinget maszkol számított Formulák. Két mixinszerű paramétert igényel, hogy a rácsbarát méretek bővítését hozzák létre.
Példa lehet arra, hogy ez a világosabb: szélesség: Méretek (1/2) Get (1) visszatér Calc (99,99% * 1/2 - (30px - 30px * 1/2))) . Törjünk le ezt:
Minden oszlop szélességét két oszlopos rácsban kapjuk, egyetlen 30px csatornával közöttük:
.grid {
Kijelző: FLEX;
Flex-Wrap: Wrap;
}
.fél {
Szélesség: méretek (1/2) Get (1); / * Visszatérés Calc (99,99% * 1/2 - (30px - 30px * 1/2) * /
Margó-jobb: 30px; / * A csatornát az egyes oszlopok jobb oldalára helyezi * /
}
.Half: nth-child (2n + 2) {/ * a 2. elemen kezdődik, és 2s * /
Margó jobb: 0; / * eltávolítja az utolsó csatornát minden sorból * /
}
Ez már megadja a tervezőknek a hatalmat, hogy ezeket a méreteket bárhol láthassák, de merüljünk mélyebben.
Méretek (100px 1/2) Get (1) visszatér 100px . Elég egyszerű, de miért kellene visszaadnunk a hangyát 100px ? Egy másodperc múlva eljutunk.
Méretek (100px 1/2) Get (2) visszatér Calc ((99,99% - (100px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)))) . Szent szar. A hangya meghatározza a rögzített számok teljes méretét, majd visszatér 1/2 bármi is maradt - egy nth rácsbarát módon.
Ezeket használhatjuk számított képletek egy rács létrehozásához a 100px oszlop és kettő 1/2 Olyan oszlopok, mint például (elhagyom a .rács Stílusok a fák mentésére, de győződjön meg róla, hogy tartalmazza őket a kódodban):
. Fixed méret {
Szélesség: Méretek (100px 1/2) Get (1); / * $ 100px-t ad vissza (tudom, hogy buta, de egy kicsit hosszabb ideig viseli velem) * /
Margó-jobb: 30px;
}
.fél {
Szélesség: Méretek (100px 1/2) Get (2); / * Visszatérés Calc (99,99% - (100px + (30px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)) * /
Margó-jobb: 30px;
}
.Half: nth-child (3n + 3) {
Margó jobb: 0;
}
Most kaphatunk néhány korábban kivághatatlan méretet, de ez még nem szuper rugalmas, és sokféle írást igényelhet, ha sok méretben foglalkozik.
Az előprocesszorok és a posztcsok nem mindig jutnak el - különösen, ha az egyéni szintaxis részt vesz. Szerencsére az Ant API előfeldolgozó-barát. Használhatunk egy Postcss-Parser-t, mint a Postcss-SCS-eket, amelynek PRECSS PRIPIN, de ez a megközelítés sok befejezetlen / pontatlanított posztcs-pluginokat használ, amelyek rosszul mimic Sass funkcionalitás. Megtaláltam a legjobb munkafolyamatot:
Ez adja meg a legjobb előfeldolgozó szintaxisát az összes posztcss plugins-szal, amit a szívedet vágyik.
Most a hűvös dolgokra. Az előprocesszorok jellemzően rendelkeznek egy meghatározott számú alkalommal, miközben iterátort biztosítanak:
@for $ 1-től 3-ig {
Tartalom: $ I; // visszaadása tartalom: 1; Tartalom: 2; Tartalom: 3;
}
Egy kis ismeretekkel az előfeldolgozók, akkor megkezdheti az Ant igazán érdekes módon ...
$ Méretek: 100px 1/2 1/2;
$ csatorna: 30px;
$ Hossz: hossza ($ méret);
.olnum {
Margó-jobb: $ csatorna;
@for $ 1-ről $ 1-ig {
& amp;: nth-child (# {$ Hossz} n + # {$ i}) {
Szélesség: Méretek ($ méret) Get ($ i) csatorna ($ csatorna);
}
}
& amp;: nth-child (# {$ Hossz} n + # {$ Hossz}) {
Margó jobb: 0;
}
}
Most a szabálytalanul méretű oszlopunk új sorokba csomagolva további jelölés nélkül. Menj előre, és vigyázzon ezzel a kóddal. Próbáljon változó méreteket, csatornákat, és új méreteket adjon hozzá (például 100px auto 100px).
Ez egy elég gyakori minta az Ant-szal, így egy olyan ingatlanba csomagoltam, amely a Vanilla CSS-vel is működik:
.Grid {
GRAND GRAND: Méretek (100px 1/2 1/2); / * További opciókat adhat meg, de a Pluck () már nem szükséges. * /
}
Az NTH rácsok nagyszerűek, ha ismeri az elhunyt elemek méretét és számát, de néha egy tartályt szeretne létrehozni, és csak véletlenszerűen méretű elemeket kell kidolgoznia. Ezekben az esetekben, negatív-margó A rácsok a legjobb tét. Egyszerűen át negatív-margó Annyira:
.grid {
Margó: 0 -15px;
}
.olnum {
Szélesség: Méretek (1/3) Get (1) rács (negatív margó);
Margó: 0 15px;
}
Ezek a példák csak egy apró pillantásra voltak az összes hűvös dologban, amit a Postcss-Ant tehet. Pár több opcionális paraméterrel és sok leíró hibaelhárítással rendelkezik, de az Ant igazi hatalma.
„Dumb” eszközöket, amelyek egyszerűen vissza kicsit az adatok mindig a legjobb eszközöket, mint tette a hatalom vissza a fejlesztő kezébe. Ez az, amit a posztcsok-hangyát terveztek. Ha érdekes, menjen el corysimmons.github.io/postcss- néhány arc-olvadó demó és édes docs.
Ezt a cikket eredetileg a Net Magazine 286. számában tették közzé, Vásárolja meg itt.
Kapcsolódó cikkek:
Amikor megtanulják, hogyan kell felhívni a nyakát és a vállakat, gyakran kihívást jelenthet, hogy megmutassam a munkánkban lévő köteteket, mivel az emberek elülső oldalait látju..
A portréfotózás kiegyenlítő törvény - annyi dolgot kell szem előtt tartani. A témával való kommunikáció, és biztos, hogy könnyen érzi magát, létfontosságú. És technikai s..
(Kép hitel: Svelte) A Sapper az Svelte tetején épült keret. A kiszolgálói rendereléssel a kiszolgálói render..
Először hallottam a fejetlen CMS-megközelítésről egy beszélgetésben, amit Drupal ikervárosokról figyeltem. Tetszett az ..
Töltse le a csatolt fájlokat 3D világ kérdés 232, egyszerűen kattintson az alábbi linkre minden cikket és egy zip fájl a..
Az újonnan érkezők számára Zbrush , Az interfész nagyon különbözik más 3D modellezési programokhoz, íg..
A 3D-s robbanások létrehozása és összetétele általában két különböző művész vagy stúdió osztály feladatai, de i..
Page 1 of 2: 1 oldal 1 oldal 2. oldal ..