Domovská » Kódování » Průvodce pro CSS Grid Layout Fr Unit

    Průvodce pro CSS Grid Layout Fr Unit

    CSS Grid Layout Module byl dodán s nové jednotky CSS nazvaný fr jednotka. Tak přímočarý jak to může být, fr je zkratka slova “zlomek”. Nová jednotka umožňuje rychle rozřezat mřížku do proporcionálních sloupců nebo řádků. Výsledkem je vytvoření plně flexibilní a flexibilní sítě se stává téměř větrem.

    Jelikož byla frakční jednotka zavedena společně s modulem Grid Layout, můžete ji použít v libovolném prohlížeči podporuje CSS mřížku. Pokud chcete také podporovat starší prohlížeče, je to skvělé Polyfill CSS mřížky který vám umožní používat nejen fr jednotky, ale i jiné funkce mřížky.

    Základní použití

    Nejprve se podívejme na základní mřížka který používá frakční jednotku. Rozložení níže rozděluje prostor na tři sloupce se stejnou šířkou a dva řádky stejné výšky.

    Příslušné HTML je vyrobeno z šest divs označené .box třída, uvnitř .obal div.

     
    1.
    2.
    3.
    4.
    5.
    6.

    Chcete-li použít modul Rozvržení mřížky, musíte přidat displej: mřížka; Vlastnost CSS pro wrapper. sloupce mřížkové šablony vlastnost používá fr jednotka jako hodnota; Poměr tří sloupců je 1: 1: 1.

    Pro řádky mřížky (řádky šablony mřížky majetku), nepoužíval jsem fr jednotky, protože má smysl pouze v případě, že obal má pevnou výšku. V opačném případě může mít na některých zařízeních podivné výsledky, a to i tehdy fr jednotka udržuje poměr (a to je obrovské).

    mezera sítě vlastnictví přidá 10px mřížku mezi poli. Pokud nechcete žádnou mezeru, odstraňte tuto vlastnost.

     .wrapper display: grid; sloupce šablony mřížky: 1fr 1fr 1fr; řádky mřížkové šablony: 200px 200px; grid-gap: 10px;  .box barva: bílá; zarovnání textu: střed; velikost písma: 30px; polstrování: 25x;  

    Všimněte si, že CSS výše neobsahuje některé základní styly, například barvy pozadí. Můžeš najít úplný kód v demu na konci článku.

    Změna poměru

    Samozřejmě, nemůžete použít pouze 1: 1: 1, ale jakýkoliv poměr, který chcete. Níže jsem použil 1: 2: 1 frakce které také dělí prostor na tři sloupce ale střední sloupec bude dvakrát širší jako ostatní dva.

    Také jsem zvýšil hodnotu mezera sítě tak, abyste viděli, jak mění rozvržení. V podstatě prohlížeč odečte mezeru mřížky od šířky pohledu (v tomto příkladu mezery mřížky dosahují až 80x) a rozřezává zbytek podle uvedených frakcí.

     .wrapper display: grid; sloupce šablony mřížky: 1fr 2fr 1fr; řádky mřížkové šablony: 200px 200px; grid-gap: 40px;  

    Kombajn fr s jinými jednotkami CSS

    Můžeš kombajn fr jednotka s jiné jednotky CSS také. Například v příkladu níže jsem použil 60% 1fr 2fr pro mřížku.

    Jak to tedy funguje? prohlížeč přiřadí 60% šířky pohledu do prvního sloupce. Poté zbytek prostoru rozdělí na zlomky 1: 2.

    Totéž by mohlo být napsáno jako 60% 13.33333% 26.66667%. Ale upřímně, proč by někdo chtěl použít tento formát? Obrovskou výhodou frakční jednotky je, že je to zlepšuje čitelnost kódu. Navíc je to zcela přesné, formát procenta stále zvyšuje až na 99,9999%.

     .wrapper display: grid; sloupce šablony mřížky: 60% 1fr 2fr; řádky mřížkové šablony: 200px 200px; grid-gap: 10px;  

    Kromě procent, můžete také použít jiné CSS jednotky například s frakční jednotkou pt, px, em, a rem.

    Přidejte mezery pomocí fr

    Co když nechcete, aby váš design byl přeplněný a přidat nějaké mezery do vaší mřížky? Frakční jednotka má také snadné řešení.

    Jak vidíte, tato mřížka má prázdný sloupec zatímco si stále uchovává všech šest krabic. Pro toto rozvržení musíme prostor rozdělit do čtyř sloupců místo tří. Takže používáme 1fr 1fr 1fr hodnotu pro sloupce mřížkové šablony vlastnictví.

    Do sloupce přidáme prázdný sloupec oblasti šablony mřížek vlastnost, pomocí bodová notace. Tato vlastnost vám v podstatě umožňuje odkazem na plochy mřížky. Oblasti mřížky můžete pojmenovat pomocí oblasti mřížky vlastnost, kterou potřebujete použít odděleně pro každou oblast.

     .wrapper display: grid; sloupce šablony mřížky: 1fr 1fr 1fr 1fr; řádky mřížkové šablony: 200px 200px; grid-gap: 10px; oblasti šablon rastrů: "box-1 box-2. box-3" "box-4 box-5. box-6";  .box-1 grid-area: box-1;  .box-2 grid-area: box-2;  .box-3 grid-area: box-3;  .box-4 grid-area: box-4;  .box-5 grid-area: box-5;  .box-6 grid-area: box-6;  

    Oblasti mezer nemusí nutně tvořit sloupec, oni může být kdekoli v mřížce.

    opakovat() funkce

    Můžete také použít fr jednotka společně s opakovat() funkce pro jednodušší syntaxe. , to není nutné, pokud máte jen jednoduchou mřížku, ale můžete se hodit, když chcete implementovat složité uspořádání, například a vnořená mřížka.

     .wrapper display: grid; sloupce mřížkové šablony: opakování (3, 1fr); / * sloupce šablony mřížky: 1fr 1fr 1fr; * / grid-template-rows: 200px; grid-gap: 10px;  

    opakovat (3, 1fr) syntax výsledkem je stejné rozvržení tak jako 1fr 1fr. Rozložení níže je stejné jako první příklad.

    jestli ty zvýšit násobitel uvnitř opakovat() budete mít více sloupců. Například, opakovat (6, 1fr) má za následek šest stejných sloupců. V tomto případě všechny naše krabice bude ve stejné řadě, to znamená, že stačí použít pouze jednu hodnotu (200px) pro řádky šablony mřížky vlastnictví.

     .wrapper display: grid; sloupce mřížkové šablony: opakování (6, 1fr); grid-template-rows: 200px; grid-gap: 10px;  

    Můžeš použít opakovat() více než jednou. Následující příklad má například za následek mřížku, ve které jsou poslední tři sloupce dvakrát širší jako první tři.

     .wrapper display: grid; sloupce mřížkové šablony: opakování (3, 1fr) opakování (3, 2fr); grid-template-rows: 200px; grid-gap: 10px;  

    Můžete také kombajn opakovat() s jinými jednotkami CSS. Můžete například použít 200px opakování (4, 1fr) 200px jako platný kód.

    Máte-li zájem o to, jak vytvořit komplexní rozvržení s modulem CSS Grid opakovat() funkce a fr jednotka Rachel Andrew má zajímavý blog post o tom, jak to můžete udělat.

    Demo pro experimentování

    Konečně, tady je demo, které jsem slíbil. Používá stejný kód jako první příklad v tomto článku. Vidlice, a uvidíte, co můžete dosáhnout s fr jednotka.