Hemsida » Kodning » Guide till CSS Grid Layout Fr Unit

    Guide till CSS Grid Layout Fr Unit

    De CSS Grid Layout Module skickades med a ny CSS-enhet ringde fr enhet. Så enkelt som det kan vara, fr är förkortning av ordet “fraktion”. Den nya enheten gör det möjligt att snabbt skära gallret upp i proportionella kolumner eller rader. Som ett resultat skapandet av fullt mottagliga och flexibla nät blir nästan en bris.

    Eftersom fraktionsenheten introducerades tillsammans med Grid Layout-modulen kan du använda den i vilken webbläsare som helst stöder CSS-nätet. Om du också vill stödja äldre webbläsare här är det bra CSS grid polyfill som låter dig använda inte bara fr enhet men även andra nätfunktioner.

    Grundläggande användning

    Låt oss först titta på a grundläggande rutnät som använder fraktionenheten. Layouten nedan delar upp utrymmet i tre lika bredd kolumner och två rader med lika höjd.

    Den tillhörande HTML är gjord av sex divs markerad med .låda klass, inuti a .omslag div.

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

    För att använda modulen Grid Layout måste du lägga till display: rutnät; CSS-egenskapen till omslaget. De grid-template-kolonner egendom använder fr enhet som värde; de förhållandet mellan de tre kolumnerna är 1: 1: 1.

    För rutnät raderna (grid-template-rader egendom), använde jag inte fr enhet, eftersom det bara är meningsfullt om omslaget har en fast höjd. Annars kan det ha konstiga resultat på vissa enheter, men även då fr enhet upprätthåller förhållandet (och det här är enormt).

    De grid-gap fast egendom lägger till ett 10px rutnät mellan lådorna. Om du inte vill ha något gap, ta bara bort den här egenskapen.

     .wrapper display: rutnät; rutmall-kolumner: 1fr 1fr 1fr; raster-mall-rader: 200px 200px; gallergap: 10px;  .box färg: vit; text-align: center; typsnittstorlek: 30px; vaddering: 25px;  

    Observera att CSS ovan inte innehåller några grundläggande styling som bakgrundsfärger. Du kan hitta hela koden i demo i slutet av artikeln.

    Ändringsförhållande

    Naturligtvis kan du inte bara använda 1: 1: 1 men vilket förhållande du vill ha. Nedan använde jag 1: 2: 1-fraktioner det delar också utrymmet i tre kolumner men mellanskolonnen kommer att vara dubbelt så bred som de andra två.

    Jag har också ökat värdet av grid-gap så att du kan se hur det ändrar layouten. I grund och botten webbläsaren drar av nätgapet från visningsbredden (i det här exemplet lägger gallret mellanrum upp till 80px) och skivar upp resten enligt de givna fraktionerna.

     .wrapper display: rutnät; galler-mall-kolumner: 1fr 2fr 1fr; raster-mall-rader: 200px 200px; gallergap: 40px;  

    Kombinera fr med andra CSS-enheter

    Du kan kombinera de fr enhet med alla andra CSS-enheter också. Till exempel, i exemplet nedan använde jag 60% 1fr 2fr förhållandet för mitt nät.

    Så, hur fungerar det här? De webbläsaren tilldelar 60% av visningsbredden till den första kolumnen. Sedan delar den resten av utrymmet i 1: 2 fraktioner.

    Samma sak kan också skrivas som 60% 13.33333% 26.66667%. Men okej, varför skulle någon vilja använda det formatet? En stor fördel med fraktionsenheten är det förbättrar kodläsbarheten. Dessutom är det helt korrekt, som procentuellt format lägger fortfarande till endast 99,9999%.

     .wrapper display: rutnät; rutmall-kolumner: 60% 1fr 2fr; raster-mall-rader: 200px 200px; gallergap: 10px;  

    Bortsett från procentandelar, Du kan också använda andra CSS-enheter tillsammans med fraktionenheten, till exempel pt, px, em, och rem.

    Lägg till whitespace med fr

    Vad händer om du inte vill att din design ska vara rörig och lägg till lite blankutrymme till ditt nät? Fraktionsenheten har också en lätt lösning för det.

    Som du kan se, detta rutnät har en tom kolumn medan den fortfarande behåller alla de sex rutorna. För denna layout behöver vi skära ut mellanslaget in i fyra kolumner istället för tre. Så, vi använder 1fr 1fr 1fr 1fr värde för grid-template-kolonner fast egendom.

    Vi lägger till den tomma kolumnen inuti grid-template-områden egendom med hjälp av punktnotering. I grund och botten tillåter du den här egenskapen referensnamn. Och du kan namnge rutnät med grid-område egendom som du behöver använda separat för varje område.

     .wrapper display: rutnät; rutnät-kolumner: 1fr 1fr 1fr 1fr; raster-mall-rader: 200px 200px; gallergap: 10px; rutnät-mallområden: "box-1 box-2. box-3" "box-4 box-5. box-6";  .box-1 rutnätområde: box-1;  .box-2 rutnätområde: box-2;  .box-3 rutnätområde: box-3;  .box-4 rutnätområde: box-4;  .box-5 rutnätområde: box-5;  .box-6 rutnätområde: box-6;  

    Vita utrymmena behöver inte nödvändigtvis bilda en kolumn, de kan vara var som helst i rutnätet.

    De upprepa() fungera

    Du kan också använda fr enhet tillsammans med upprepa() fungera för en enklare syntax. , Detta är inte nödvändigt om du bara har ett enkelt rutnät men kan vara till nytta när du vill genomföra en komplicerad layout, till exempel a nestad rutnät.

     .wrapper display: rutnät; rutnätmall-kolumner: upprepa (3, 1fr); / * galler-mall-kolumner: 1fr 1fr 1fr; * / galler-mall-rader: 200px; gallergap: 10px;  

    De upprepa (3, 1fr) syntax resulterar i samma layout som 1fr 1fr 1fr. Layouten nedan är densamma som det första exemplet.

    Om du öka multiplikatorn inuti upprepa() funktion du kommer att ha fler kolumner. Till exempel, upprepa (6, 1fr) resulterar i sex lika kolumner. I det här fallet, alla våra lådor kommer att ligga i samma rad, vilket betyder att det räcker att bara använda ett värde (200px) för grid-template-rader fast egendom.

     .wrapper display: rutnät; rutmall-kolumner: upprepa (6, 1fr); raster-mall-rader: 200px; gallergap: 10px;  

    Du kan använda upprepa() mer än en gång. Exempelvis resulterar följande exempel i ett rutnät där de tre sista kolumnerna är dubbelt så bred som de tre första.

     .wrapper display: rutnät; rutmall-kolumner: repetera (3, 1fr) upprepa (3, 2fr); raster-mall-rader: 200px; gallergap: 10px;  

    Du kan också kombinera upprepa() med andra CSS-enheter. Till exempel kan du använda 200px upprepning (4, 1fr) 200px som en giltig kod.

    Om du är intresserad av hur man gör det skapa komplexa layouter med CSS Grid-modulen, upprepa() funktion och fr Enhet Rachel Andrew har ett intressant blogginlägg om hur du kan göra det.

    En demonstration för experiment

    Till sist, här är den demo som jag lovade. Den använder samma kod som det första exemplet i den här artikeln. Gaffel det och se vad du kan uppnå med fr enhet.