Zbuduj złożone układy z Postcss-Flexbox

Sep 16, 2025
Jak

Flexbox to świetne narzędzie do redukcji CSS Blow i ma trochę cukru wbudowany, aby poradzić sobie z rzeczami jak kolejność źródła i wyrównanie. Ale nie oferuje żadnej pomocy, aby wykonać matematykę, która tworzy rozmiar kolumny i rynny. Jak wielu ekspertów wielokrotnie stanowi: Flexbox jest ładny, ale nie jest systemem sieci.

Powinniśmy skorzystać z flexbox, ale nie powinniśmy wyrzucać podstawowych pojęć za systemami siatki, które wyciągnęły nas z projektu "Geoicties Era" projektu:

  • Zrobić kolumny proporcjonalne do czegoś
  • Używaj spójnych rynny w całym projekcie

Możemy skorzystać z jednej z wielu systemów sieci Flexbox, ale we wszystkich uczciwościach, style za sobą są to takie same jak siatki pływakowe. Autorzy po prostu dodają wyświetlanie: Flex do pojemnika, wraz z niektórymi klasami pomocniczymi, które zaciemniają właściwości flexbox (na przykład, klasa taka jak .Grid-pionowo-wyrównuje-połowy jest zaciemnia Wyrównaj elementy: centrum ).

Jedyną różnicą jest, teraz kolumny są "zgięte", co oznacza, że ​​otrzymujemy ten cukier, o którym wspomniałem wcześniej. Ale to nadal nie rozwiąże głównych problemów, które dziś siatki: Systemy sieciowe wciąż wyjściowe tonę CSS, a siatki są nadal nudne.

  • 25 Szablony stron internetowych najwyższej klasy

Problem z siatkami

System bloat: Bootstrap’s generated CSS for the grid alone is 16,435 characters – most of which you’ll never use

System BLOOT: Wygenerowane CSS CSSTrap dla samego siatki to 16 435 znaków - większość, z których nigdy nie będziesz użyć

Autorzy siatki zazwyczaj rozpowszechniają ogromne opakowania CSS, które mogą przesunąć, kolejność źródłową, wyrównać i zmienić rozmiar według niektórych arbitralnych rozmiarów urządzenia. Opierają się na GZIP, aby złagodzić niektóre obrażenia, ale to nie wszystko to wszystko. Co jeśli nie potrzebujesz tych dodatkowych funkcji?

Zakładając, że ramy, których obecnie używasz oferty MIXINS siatki, najlepszym rozwiązaniem może być nauczenie się tych i skomponować własnych kolumn. Produkuje to mało buchę, ale ogranicza swoje siatki do frakcji i nie oferuje dużo mobilności między różnymi ramami.

Do drugiego wydania. Projektanci stali się mentalnie zamknięci w celu dokonania wszystkich decyzji na podstawie określonej kombinacji kolumn równorzędnych. W rezultacie cały Internet zaczyna rozmyć razem w stosunku do mobilnego; 1/12 kombinacji kolumn na cokolwiek innego "Dystopii.

Wprowadzono flexbox flex-rosnący , który trochę nas uwolnił. Teraz możemy ustawić rozmiary, które wyglądają dobrze i wypełnić pozostałą przestrzeń z rozciągniętym elementem, ale robią rynny linię konsekwentnie na całej stronie? Czy obszary zadowalające są zgodne z myślą o wszelkim proporcjach, czy jesteśmy wracając po to, by je skrzywdzić?

Wejście smoka

Rozwiązanie obu tych problemów jest owinięte w funkcji zwanej PostCS-Ant. Wtyczki Postcss mogą być używane z zakresem narzędzi budowlanych, takich jak WebPack, Gulp lub po prostu wiersz polecenia. Ant miesza płynnie w zwykły CSS (lub dowolny preprocesor) z dezaktywalnym prostym API, który maskuje dziesiątki umysłu bogg calc. formuły. Wymaga dwóch parametrów podobnych do mieszanki do pobierania mnóstwa o rozmiarach przyjaznych w siatce.

Przykład może wykonać to wyraźniej: szerokość: Rozmiary (1/2) Get (1) zwroty Calc (99,99% * 1/2 - (30px - 30px * 1/2)) . Złammy to:

  • rozmiary () jest rozdzieloną przestrzenią lista rozmiarów. Mogą to być dowolna kombinacja różnych rozmiarów: stałe liczby w postaci prawidłowych długości CSS ( px. , EM. , Władze ); frakcje lub numery pływakowe (które zwracają wszystko, co pozostaje, sans stałe); i automatyczny Słowa kluczowe (które zwracają dowolną wielkość, sans frakcje i stałe numery)
  • podroby() jest 1 indeksem 1, który pobiera rozmiar przyjazny siatce z listy. Więc Rozmiary (1px 2px 3px) Get (2) wrócił 2px.
  • The. calc. Formuła jest wielkością przyjazną siatką

Dostajemy szerokość dla każdej kolumny w siatce dwubolowej z pojedynczą rynną 30px między nimi:

.krata {
  Wyświetlacz: Flex;
  Flex-Wrap: Wrap;
}

.half {
  Szerokość: Rozmiary (1/2) Get (1); / * zwroty Calc (99,99% * 1/2 - (30px - 30px * 1/2)) * /
  margines prawy: 30px; / * stawia rynny po prawej stronie każdej kolumny * /
}

.half: NTH-Child (2N + 2) {/ * rozpoczyna się na drugim elemencie i zaczyna liczyć przez 2S * /
  margines prawy: 0; / * Usuwa ostatnią rynnę z każdego rzędu * /
} 

Daje to już projektantom moc korzystania z tych rozmiarów, gdziekolwiek widzą dopasowanie, ale nurkujmy głębiej.

Rozmiary (100px 1/2) Get (1) zwroty 100px. . Wystarczająco proste, ale dlaczego musielibyśmy użyć mrówki do powrotu 100px. ? Dostaniemy do tego za chwilę.

Rozmiary (100px 1/2) Get (2) zwroty Calc ((99,99% - (100px + (30px * 1)) * 1/2 - (30px - 30px * 1/2)) . O kurczę. mrówka określa całkowitą wielkość stałych liczb, a następnie powracający 1/2. tego, co pozostało - w natury przyjazny siatce.

Możemy z nich korzystać calc. formuły, aby stworzyć siatkę za pomocą 100px. kolumna i dwa 1/2. kolumny jak więc (pominę o tym .krata Style, aby uratować drzewa, ale pamiętaj, aby włączyć je w kodzie):

 .Fixed-size {
  Szerokość: Rozmiary (100px 1/2) Get (1); / * zwraca 100px (wiem, że wydaje się głupie, ale nieco nieco dłuższy) * /
  margines prawy: 30px;
}

.half {
  Szerokość: Rozmiary (100px 1/2) Get (2); / * zwroty Calc ((99,99% - (100px + (30px * 1))) * 1/2 - (30px - 30px * 1/2) * /
  margines prawy: 30px;
}

.half: nth-dziecko (3n + 3) {
  margines prawy: 0;
} 

Teraz możemy uzyskać pewne wcześniej nieosiągalne rozmiary, ale nie jest jeszcze super elastyczne i może wymagać dużo pisania podczas radzenia sobie z wieloma rozmiarami.

Pętla przedprocesora.

Minimal markup: A minimal markup, two-column, nth grid using postcss-ant. Notice how there is no margin-right on the last element in the row

Minimal Markup: minimalna marka, dwie kolumny, nth siatka za pomocą Mrówki PostCS. Zauważ, jak nie ma marginesu na ostatnim elemencie w rzędzie

Preprocesory i Postcss nie zawsze się dogadują - zwłaszcza gdy zaangażowana jest niestandardowa składnia. Na szczęście API ANT jest przyjazny preprocesor. Możemy użyć parsera PostCS, takiego jak PostCSSS-SCSS z wtyczką CENSS, ale podejście to wykorzystuje wiele niedokończonych / unmained Postcss wtyczek, które słabo mimiczną funkcjonalność Sass. Znalazłem najlepszy przepływ pracy, jest:

  • Użyj szybkiego preprocesora, takiego jak węzeł-Sass do oglądania in.scss. do Out.css.
  • Użyj PostCS, aby oglądać Out.css. do Final.CSS.
  • & lt; link & gt; do Final.CSS. W twoim znaczniku.

Daje to najlepszą składnię przedprocesora ze wszystkimi wtyczkami PostCS, które pragnie Twoje serce.

Teraz na fajne rzeczy. Preprocesory zazwyczaj mają sposób na pętlę określoną liczbę razy, zapewniając Iterator:

 @For I od 1 do 3 {
  Treść: $ I; // zwraca treść: 1; Treść: 2; Treść: 3;
} 

Z małą wiedzą na temat preprocesorów możesz rozpocząć korzystanie z ANT w naprawdę interesujących sposobach ...

 $ rozmiary: 100px 1/2 1/2;
$ rynna: 30px;
$ Długość: Długość ($ rozmiary);

.Column {
  margines prawy: $ rynna;

  @ Ver $ I od 1 do $ Długość {
    & amp;: nth-dziecko (# {$ długość} n + # {$ i}) {
      Szerokość: Rozmiary ($ rozmiary) Get ($ i) rynsztok ($ rynna);
    }
  }

  & amp;: nth-dziecko (# {$ długość} n + # {$ długość}) {
    margines prawy: 0;
  }
} 

Teraz nasze nieregularnie wielkości kolumny zawijają się do nowych wierszy bez dodatkowego znacznika. Idź naprzód i obok tego kodu. Spróbuj różnych rozmiarów, rynny i dodawanie nowych rozmiarów (np. 100px Auto 100PX).

Jest to dość powszechny wzór z mrówką, więc zawijałem go w nieruchomości, która współpracuje z Vanilą CSS:

 .Grid {
  Generowanie siatki: Rozmiary (100px 1/2 1/2); / * Możesz przekazać dodatkowe opcje, ale plka () nie jest już potrzebna. * /
} 

Dużo opcji

Preprocessor loops: ant really begins to show its strength when we combine it with preprocessor loops to create layouts that used to be impossible

Pętle preprocesor: mrówka naprawdę zaczyna pokazać swoją siłę, gdy łączymy go z pętlami preprocesorowymi, aby stworzyć układy, które były niemożliwe

NTH Siatki są świetne, gdy znasz rozmiar i liczbę elementów, które mają być przekazane, ale czasami chcesz utworzyć kontener i po prostu zrzucić niektóre elementy losowo. W tych przypadkach, margines negatywny Siatki są najlepszym zakładem. Po prostu przejść margines negatywny do mrówki:

.krata {
  Marża: 0 -15px;
}

.Column {
  Szerokość: Rozmiary (1/3) Get (1) Grid (negatywny margines);
  Marża: 0 15px;
} 

Wniosek

Te przykłady były tylko niewielkie spojrzenie na wszystkie fajne rzeczy, które mogą zrobić PostCS-Ant. Posiada parę więcej opcjonalnych parametrów i wiele opcjonalnych obsługi błędów, ale prawdziwa moc ANT jest tobą.

Narzędzia "głupie", które po prostu zwracają odrobinę danych są zawsze najlepszymi narzędziami, ponieważ wkładają moc z powrotem do rąk deweloperów. Oznacza to, że Mrówka PostCS został zaprojektowany. Jeśli jesteś zaintrygowany, udaj się do corysimmons.github.io/postcssss-ant. Dla niektórych demonstracji topnienia twarzy i słodkich dokumentów.

Ten artykuł został pierwotnie opublikowany w wydaniu 286 magazynu netto, Kup tutaj tutaj.

Powiązane artykuły:

  • Dlaczego projektowanie stron internetowych potrzebuje ekspertów UX
  • 10 Najlepszych książek projektowania stron internetowych na Boże Narodzenie 2016
  • 3 najlepsze narzędzia do testowania wydajności sieci

Jak - Najpopularniejsze artykuły

Zacznij od Grav CMS

Jak Sep 16, 2025

(Kredyt obrazu: przyszłość) Grava jest systemem zarządzania treścią (CMS) z różnicą. Systemy zarządzania tr..


Zbuduj ChatBot AI

Jak Sep 16, 2025

Sztuczna inteligencja (AI) pozwala nam tworzyć nowe sposoby patrzenia na istniejące problemy, od przemyślenia strategii środo..


Jak szybko szkicować ręce

Jak Sep 16, 2025

Aby narysować ręce, musisz obejrzeć złożoność anatomii ręki i rozpoznać proste zasady, które pomogą Ci wyciągnąć z ..


10 wskazówek dotyczących opanowania aplikacji Apple App

Jak Sep 16, 2025

Aplikacja MacOS Photos rozpoczął życie jako iPhoto: aplikacja konsumenta do zarządzania zdjęciami cyfrowymi, z kilkoma podst..


3 Wskazówki dotyczące rzucania oszałamiającego materiału promocyjnego druku

Jak Sep 16, 2025

W coraz bardziej cyfrowym świecie sprytnie sprytnie wykonany materiał promocyjny ma moc poważnego uderzenia. Może jesteś fre..


Jak utworzyć autentyczny komiks mangi

Jak Sep 16, 2025

Strona 1 z 2: Strona 1 Strona 1 Strona 2 Podczas gdy styl i kończy..


Model obcych stworzeń pirackich w Zbrush

Jak Sep 16, 2025

Aby pomóc Ci nauczyć się stworzyć 3D obcych pirackich postaci, pokażę ci, jak wyrzeźbiłem twarz mojego stworzenia, obrada..


Jak zrobić renderujące renderowanie samochodów sportowych

Jak Sep 16, 2025

W ciągu ostatnich lat wyhonowałem moje umiejętności w oświetleniu i renderowaniu, a także niektóre inne techniki z różny..


Kategorie