Flexbox on erinomainen työkalu CSS: n vähentämiseen, ja sillä on joitain sokeria, joka on rakennettu käsittelemään asioita, kuten lähdejärjestys ja kohdistus. Mutta se ei tarjoa mitään apua matematiikan tekemiseen, joka luo saraketta ja vesikokoja. Kuten monet asiantuntijat toistuvasti toistuvasti: Flexbox on mukava, mutta se ei ole verkkojärjestelmä.
Meidän on käytettävä Flexboxia, mutta emme saa heittää pois peruskäsitteitä GRID-järjestelmien takana, jotka vetivät meidät GeoCities ERA: sta:
Voimme käyttää yhtä monista Flexbox Grid -järjestelmistä siellä, mutta kaikessa rehellisyydessä, niiden takana olevat tyylejä ovat lähinnä samat kuin float-pohjaiset verkot. Tekijät vain lisäävät näytön: Flex astiaan sekä joitakin auttaja-luokkia, jotka hämärtävät Flexboxin ominaisuudet (esimerkiksi luokka kuten .grid-vertikaalinen suuntaus on hämmentynyt Kohdista: Keskus ).
Ainoa ero on, nyt sarakkeet ovat "taipuisia", mikä tarkoittaa, että saamme tämän sokerin, jonka mainitsin aiemmin. Mutta tämä ei vieläkään ratkaise tärkeimpiä ongelmia, jotka kohtaavat tänään: Grid Systems tuottavat edelleen tonni CSS Bloat, ja ruudut ovat edelleen tylsää.
Grid-kirjoittajat jakelevat tyypillisesti valtavia CSS-pakkauksia, jotka voivat korvata, lähdekoodin, kohdistaa ja muuttaa koko mielivaltaisen laitteen koon mukaan. He luottavat Gzipiin lieventämään joitain vahinkoja, mutta tämä ei saa sitä kaikki. Entä jos et tarvitse näitä lisäominaisuuksia?
Olettaen, että käytät parhaita tarjouksia, joita käytät verkkoyksiköitä, paras ratkaisu saattaa olla oppia niitä ja säveltää omia sarakkeitasi. Tämä tuottaa vähän pullistua, mutta rajoittaa verkkoja fraktioihin ja ei tarjoa paljon liikkuvuutta eri puitteiden välillä.
Toiseen kysymykseen. Suunnittelijat ovat henkisesti lukittuja tekemään kaikki päätöksensä tiettyyn yhdistelmään yhtä suurten sarakkeiden yhdistelmälle. Tämän seurauksena koko internet alkaa hämärtää yhteen "pino mobiililaitteeseen; 1/12 sarakkeen yhdistelmät mihin tahansa muuhun dystopiaan.
Flexbox esitteli flex-kasvaa , joka vapautti meidät hieman. Nyt voimme asettaa koot, jotka näyttävät hyvältä ja täyttävät jäljellä olevat tilat venytetyllä elementillä, mutta tee gutters linjaa johdonmukaisesti koko sivun? Ovatko sisältöalueet millä tahansa millä tahansa mittasuhteilla, vai tulemme takaisin vain siivekäs?
Ratkaisu molempiin ongelmiin on kääritty PostCSS-Ant-toimintoon. Postcss-laajennuksia voidaan käyttää useilla rakennustyökaluilla, kuten webpack, gulp tai yksinkertaisesti komentorivi. ant-sekoitukset saumattomasti tavallisiin CSS: hen (tai esikäsittelyyn), jossa on petollinen yksinkertainen API, joka peittää kymmeniä mielen boggling kalkki kaavat. Se vaatii kaksi sekoitusmaisempaa parametria haetaan lukuisia ruudukkoystävällisiä koot.
Esimerkki voi tehdä tämän selkeämmän: leveys: Koot (1/2) Hanki (1) palaa Calc (99,99% * 1/2 - (30px - 30px * 1/2)) . Katkaise tämä alas:
Saan leveys kullekin sarakkeelle kahden sarakkeen verkkoon, jossa on yksi 30px-kouru niiden välillä:
.grid {
Näyttö: Flex;
Flex-Wrap: Kääri;
}
.Half {
Leveys: Koot (1/2) Hanki (1); / * Palauttaa laskettuna (99,99% * 1/2 - (30px - 30px * 1/2)) * /
marginaali-oikeus: 30px; / * Asettaa kappaleen kunkin sarakkeen oikealla puolella * /
}
.Half: nth-lapsi (2n + 2) {/ * alkaa 2. elementistä ja alkaa laskea 2S * /
marginaali-oikea: 0; / * poistaa viimeisen kourun jokaisesta rivistä * /
}
Tämä antaa jo suunnittelijoille mahdollisuuden käyttää näitä kokoja aina, kun he näkevät sopiviksi, mutta sukellamme syvemmälle.
Koot (100px 1/2) Hanki (1) palaa 100px . Tarpeeksi yksinkertainen, mutta miksi meidän on käytettävä ant-paluuta 100px ? Me pääsemme siihen toiseen.
Koot (100px 1/2) Hanki (2) palaa Calc (99,99% - (100px + (30px * 1)) * 1/2 - (30px - 30px * 1/2))) . Pyhä jysäys. Ant on selvittää kiinteän numeron kokonaiskoko ja palaa sitten 1/2 Mitä tahansa jäljellä - n: n remidiyhteisöllä.
Voimme käyttää näitä kalkki kaavat luodaan verkkoon 100px Sarake ja kaksi 1/2 sarakkeet, kuten niin (minä jätän .grid Tyylit säästävät puita, mutta muista sisällyttää ne koodisi):
.fixed-koko {
Leveys: Koot (100px 1/2) Hanki (1); / * Palauttaa 100px (tiedän, että se tuntuu typerältä, mutta karhu minua hieman pidempään) * /
marginaali-oikeus: 30px;
}
.Half {
Leveys: Koot (100px 1/2) Hanki (2); / * Palauttaa laskettuna ((99,99% - (100px + (30px + (30px * 1))) * 1/2 - (30px - 30px * 1/2)) * /
marginaali-oikeus: 30px;
}
.Half: nth-lapsi (3n + 3) {
marginaali-oikea: 0;
}
Nyt voimme saada joitain aikaisempia sopivia kokoja, mutta se ei ole erittäin joustava vielä ja voi vaatia paljon kirjoitusta monien koon käsittelyssä.
Preprocessors ja postekset eivät aina tule mukaan - varsinkin kun mukautettu syntaksi on mukana. Onneksi Ant's API on esikäsittelyystävällinen. Voimme käyttää postcss-parseria, kuten PostCSS-SCS: ää, jossa on PropSS-laajennus, mutta tämä lähestymistapa käyttää paljon keskeneräisiä / hankalia postcss-laajennuksia, jotka huonosti jäljittelevät Sassin toiminnallisuutta. Olen löytänyt parhaan työnkulun on:
Tämä antaa sinulle parhaan preprocessorin syntaksi kaikki postcss laajentaa sydämesi toiveita.
Nyt viileitä tavaroita. Esikäsittelijöillä on tyypillisesti tapa silmukata määritettyä määrää kertoja, kun se tarjoaa iteratorin:
@For $ I alkaen 1 - 3 {
Sisältö: $ I; // palauttaa sisällön: 1; Sisältö: 2; Sisältö: 3;
}
Little-tiedostoa esikäsittelijöistä, voit aloittaa Ant Todella mielenkiintoisissa tavoista ...
$ Koot: 100px 1/2 1/2;
$ Gutter: 30px;
$ Pituus: pituus ($ Koot);
.column {
marginaali-oikeus: $ Gutter;
@For $ I alkaen 1 - $ pituus {
& amp;: nth-child (# {$ pituus} n + # {$ i}) {
Leveys: Koot ($ koko) Get ($ I) Gutter ($ Gutter);
}
}
& amp;: nth-child (# {$ pituus} n + # {$ pituus}) {
marginaali-oikea: 0;
}
}
Nyt sääntöjenmukaisesti kokoiset sarakkeet käärit uusiin riviin ilman lisämerkkiä. Mene eteenpäin ja tinker noin tämän koodin kanssa. Kokeile vaihtelevia koot, vesiskoot ja lisäämällä uusia kokoja (kuten 100px auto 100px).
Tämä on melko yleinen kuvio ANT: n kanssa, joten olen kääritty se kiinteistöön, joka toimii vanilja CSS: n kanssa:
.grid {
Generate-Grid: Koot (100px 1/2 1/2); / * Voit siirtää lisävaihtoehtoja, mutta pluck () ei enää tarvita. * /
}
N: n verkot ovat suuria, kun tiedät siirrettävien elementtien koon ja määrän, mutta joskus haluat luoda säiliön ja vain kaataa joitakin satunnaisesti kokoisia elementtejä. Näissä tapauksissa, Negative-marginaali Verrat ovat paras veto. Yksinkertaisesti kulkea Negative-marginaali muille kuin niin:
.grid {
marginaali: 0 -15px;
}
.column {
Leveys: Koot (1/3) Hanki (1) verkko (negatiivinen marginaali);
Marginaali: 0 15px;
}
Nämä esimerkit olivat vain pieniä vilkkuu kaikissa viileissä asioissa postcss-ant voi tehdä. Siinä on pari valinnaista parametria ja paljon kuvaavaa virheenkäsittelyä, mutta Ant on todellinen voima.
"Dumb" -työkalut, jotka yksinkertaisesti palauttavat vähän tietoja ovat aina parhaita työkaluja, kun ne asettavat virran takaisin kehittäjän käsiin. Näin postcss-ant on suunniteltu tekemään. Jos olet kiinnostunut, pää corysimmons.github.io/postcsss Jotkut kasvojen sulava demot ja makeat dokumentit.
Tämä artikkeli julkaistiin alun perin nettolehdestä 286, Osta se täällä.
Aiheeseen liittyvät artikkelit:
(Kuva luotto: tulevaisuus, Matt Smith) Oppiminen Photoshop Joku kuvaan on erittäin hyödyllinen taito hankkia. Täm�..
Portrait-valokuvaus on tasapainotuslaki - on niin paljon asioita pitää mielessä. Kommunikointi aiheesi ja varmista, että he tuntevat olevansa tärkeitä. Ja teknisestä näkökulmasta huo..
On monia näkökohtia valaistus, jonka sinun on harkittava, jotta voidaan välittää lomake. Yksi erittäin hyödyllinen perusta..
Jokainen, joka työskentelee ammattimaisesti hahmosuunnittelu , merkki Raamattu on yksi työnkulun tärkeimmistä ..
3D-räjähdysten luominen ja koostumus on yleensä tehtävä kahdelle eri taiteilijalle tai studioosastolle, mutta täällä me h..
Kun piirrät lemmikkieläinten muotokuvia, sinun ei tarvitse vain tietää Kuinka vetää eläimiä : Tehtävä ka..
Vaikka ei ole mahdollista näyttää ääntä tavanomaisessa, still-kuvassa (multimedia-interaktiivisuus syrjään), on mahdollis..
Tämä opetusohjelma kattaa hyödykkeen rakentamisen prosessin - tässä tapauksessa a Avaruusalusuunnittelu - Oik..